1,我们研究数据结构的操作,第一要弄懂它的结构体表示(也就是结构体特点)、第二要清楚它的初始化和撤销过程。对于静态链表首先分析它的特点:一是采用静态存储方式,二是没有指针。静态链表就是不用指针来表示链式关系的一种巧妙实现。

2,静态链表的结构体定义

1 #define MAX 100
2 
3 typedef struct
4 {
5     int data;   //数据域的类型可以是任意的基类型,包括数组
6     int cur;
7 }component, slinklist[MAX]

3,静态链表的初始化示意图
C语言实现--静态链表的操作

4,静态链表的操作集合,与单链表一致,均在头文件defs.h中。此头文件在前面文章中已经写出。

5,初始化操作的实现

 1 #include"defs.h"
 2 
 3 void InitList(slinklist s)
 4 {
 5     int i;
 6     L[MAX-1].cur = 0;   //令链表头结点为空
 7    
 8    for (i=0; i<MAX-2; i++) //其余元素构成备用链表
 9         L[i].cur = i+1; 
10     L[MAX-2].cur = 0;   //备用链表最后一个元素置为空
11 }
InitList.c

相关文章: