数据结构中一种特殊的链表——静态链表
静态链表是一种较为特殊的链表,这种链表没有指针,所以它可以用于一些没有指针类型的高级语言结构中;
静态链表与普通的单链表的区别?
1、静态链表在分配内存空间时会申请一整片较大的连续空间;
2、静态链表是没有指针的,它使用游标(下一个结点的数组下标)来充当指针;
静态链表与单链表的对应关系如下图所示:
静态链表结构类型的描述如下:
#define MaxSize 50 //静态链表的最大长度
typedef struct{ //静态链表结构类型的定义
ElemType data; //存储数据元素
int next; //下一个元素的数组下标
}SLinkList[MaxSize];
静态链表以next==-1作为结束的标志;静态链表的插入、删除操作与动态链表的相同,只需要修改指针,而不需要移动元素;
总的来说,静态链表没有单链表使用起来方便,但在一些不支持指针的高级语言(如Basic)中,这是一种非常巧妙的设计方法;