首页 理论教育 C语言程序设计:实现静态链表

C语言程序设计:实现静态链表

时间:2023-10-29 理论教育 版权反馈
【摘要】:静态链表指的是先确定结点个数,然后根据指定个数而创建的链表,所有结点不是临时开辟的,用完不能释放。下面通过一个例子来说明怎样建立静态链表。建立如图8.12的简单链表,包括三个存储学生数据的结点,输出学生数据。

C语言程序设计:实现静态链表

静态链表指的是先确定结点个数,然后根据指定个数而创建的链表,所有结点不是临时开辟的,用完不能释放。下面通过一个例子来说明怎样建立静态链表。

【例8.7】建立如图8.12的简单链表,包括三个存储学生数据的结点,输出学生数据。

程序内容如下:

1 /*这是一个有关于静态链表知识讲解的事例程序*/

2 #include<stdio.h>

3 struct Student

4 {

5  int num;

6  float score;

7  struct Student*next;

8 };

9 int main()

10 {

11  struct Student a,b,c,*head,*p;

12  a.num=201801; a.score=88;

13  b.num=201804; b.score=92;   

14  c.num=201806; c.score=60;

15  head=&a;    (www.xing528.com)

16  a.next=&b;

17  b.next=&c;

18  c.next=NULL;

19  p=head;

20  do

21  {

22   printf("%ld%5.1f\n",p->num,p->score);

23   p=p->next;

24  }while(p!=NULL);

25  return 0;

26 }

程序结果如图8.13所示:

图8.13 例8.7程序结果图

【例题中关键问题说明】

(1)本程序中,定义了3个结构体变量a、b、c,用来存放学生数据,通过指针类型成员next来存放下一个结点的地址,从而构建链表。

(2)head指向头结点,在输出链表时借助指针p,先使p指向a结点,输出a结点数据,再执行p->next,指向b结点,输出b结点数据,直至p指向为NULL,表示最后一个结点,跳出循环。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈