【数据结构和算法】Day 14

来源:互联网 发布:网络乾坤 编辑:程序博客网 时间:2024/06/09 09:23

静态链表:用数组描述的链表叫做静态链表,因为数组在声明的时候就必须知道要占多大的空间,这种描述方法叫做游标实现法。

实现代码:

#define MAXSIZE 1000typedef struct {    Elemtype data;  //数据    int cur;  //游标(Cursor)}Component, StaticLinkList[MAXSIZE];


我们规定:

1)数组的第一个元素和最后一个元素(如图所示,就是数组下标为0和下标为999的元素)是不存放任何数据的。

2)数组最后一个元素的游标,指向数组内第一个有数据的元素的下标(如图所示,下标为999的元素游标为1)。

3)数组第一个元素的游标,指向数组内第一个没有存放数据的元素的下标(如图所示,下标为0的元素游标为5)。

4)其余元素的游标均为下一个元素的下标(如图所示,下表为1的元素游标为2,下标为2的元素游标为3等)。

5)静态链表的最后一个元素的游标为0(如图所示,下标为4的元素游标为0)。


我们通常把未使用的数组元素称为备用链表。


对静态链表初始化

Status InitList(StaticLinkList space){    int i;    for( i=0; i <MAXSIZE-1; i++ )        space[i].cur = i+1;    space[MAXSIZE-1].cur = 0;    return OK;}