下面通过一个例子来说明怎样建立和输出一个简单的静态链表
eg:建立一个简单的链表,它由3个学生数据的结点组成,要求输出各结点中的数据。
解题思路:
①:首先声明一个结构体类型,其成员包括num(学号),score(成绩),next(指针变量,存下一个结点的地址)。
②:将第一个结点的起始地址赋给头指针head,将第2个结点的起始地址赋给第1个结点的next成员,将第3个结点的起始地址赋给第2个结点的next成员。第3个结点的next成员赋予NULL。这就形成了链表。
#include "stdio.h" struct student //声明结构体类型 struct student { int num; //学号 float score; //分数 struct student*next; //下一个结点的地址 }; int main() { struct student a,b,c,*head,*p; //定义3个结构体变量a、b、c作为链表的结点 a.num=10001,a.score=89; b.num=10002,b.score=90; c.num=10003,c.score=89.5; head=&a; //头指针head存放结点a的起始地址 a.next=&b; //a结点的next成员存放结点b的起始地址 b.next=&c; c.next=NULL; //最后一个结点c的next成员不存放其他结点地址 p=head; //使p也指向a结点 while(p!=NULL) { printf("%ld %5.1f\n",p->num,p->score); p=p->next; //使p指向下一节点 } return 0; }