例11.7建立一个如图11.11所示的简单链表,它由3个学生数据的结点组成。输出各结点中的数据。
#define NULL 0
struct student
{long num;
float score;
struct student *next;
};
main()
{ struct student a,b,c,*head,*p;
a,num=99101; a.score=89.5;
b,num=99103; b.score=90;
c,num=99107; c.score=85;/*对结点的num和score成员赋值*/
head=&a; /*将结点a的起始地址赋给头指针head*/
a.next=&b; /*将结点b的起始地址赋给a结点的next成员*/
b.next=&c; /*将结点c的起始地址赋给b结点的next成员*/
c.next=NULL; /*c结点的next成员不存放其他结点地址*/
p=head; /*使p指针指向a结点*/
do
{printf("%ld %5.1f\n",p->num,p->score);/*输出p指向的结点的数据*/
p=p->next; /*使p指向下一结点*/
} while(p!=NULL); /*输出完c结点后p的值为NULL*/
}