数据结构——静态链表
1.静态链表存储结构
(1)静态链表的定义:在单链表的一个节点中存在一个数据域和一个指针域;而静态链表使用数组来代替指针,我们让数组的元素由两个数据域组成,data和cur(游标)。用数组表述的链表就叫做静态链表。
(2)静态链表的存储结构:由于静态链表是数组构成的,我们为了方便数据的插入会把数组建立的大一些,不至于溢出。
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
typedef int Status;
#difine MAXSIZE 1000
typedef struct{
ElemType data;
int cur; //游标,为0时表示无指向
}Component,StaticLinkList[MAXSIZE];
(3)静态链表的初始化
Status InitList(StaticLinkList space){ //space[0].cur为头指针
int i;
for(i=0;i<MAXSIZE-1;i++){
space[i].cur=i+1;
}
space[MAXSIZE-1].cur=0; //链表为空,最后一个元素的cur为0
return OK;
}
2.静态链表的插入操作
(1)插入操作:在动态链表中,我们使用malloc()和free()两个函数来实现节点的申请和释放