数据结构中的静态链表,如何实现高效存储与访问?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1138个文字,预计阅读时间需要5分钟。
静态链表++在没有任何指针类型的语言中,可以使用顺序存储结构模拟链表。有人想用数组代替指针来描述单链表,首先我们让数组的元素都由两个数据域组成,即data和cur,也就是说,data和cur组成一个数据域。
静态链表
++在没有指针类型的语言中,可以用顺序存储结构模拟链表。有人想出来用数组代替指针,来描述单链表,首先我们让数组的元素都是由两个数据域组成,由data和cur,也就是说,数组的每一个下标都对应着一个data和一个cur。数据域data,用来存放数据元素,也就是我们通常要来处理的数据,而游标cur相当于单链表中的next指针,存放该元素的后继在数组中的下标。这种用数组描述的链表叫做静态链表,这种描述方法还叫游标实现法,为了方便插入数据,我们通常将数组建立得稍大一些,以便有一些空闲空间可以便于插入时不至于溢出。++
//线性表的静态链表存储结构
#define MAXSIZE 1000
typedef struct
{
ElemType data;
int cur;//游标,为0时表示无指向
}Component,SLinkList[MAXSIZE];
我们对数组第一个和最后一个元素做特殊处理,不存数据。我们通常把未使用的的数组元素称为备用链表。而数组第一个元素,即下标为0的元素的cur就存放备用链表的第一个结点的下标。
本文共计1138个文字,预计阅读时间需要5分钟。
静态链表++在没有任何指针类型的语言中,可以使用顺序存储结构模拟链表。有人想用数组代替指针来描述单链表,首先我们让数组的元素都由两个数据域组成,即data和cur,也就是说,data和cur组成一个数据域。
静态链表
++在没有指针类型的语言中,可以用顺序存储结构模拟链表。有人想出来用数组代替指针,来描述单链表,首先我们让数组的元素都是由两个数据域组成,由data和cur,也就是说,数组的每一个下标都对应着一个data和一个cur。数据域data,用来存放数据元素,也就是我们通常要来处理的数据,而游标cur相当于单链表中的next指针,存放该元素的后继在数组中的下标。这种用数组描述的链表叫做静态链表,这种描述方法还叫游标实现法,为了方便插入数据,我们通常将数组建立得稍大一些,以便有一些空闲空间可以便于插入时不至于溢出。++
//线性表的静态链表存储结构
#define MAXSIZE 1000
typedef struct
{
ElemType data;
int cur;//游标,为0时表示无指向
}Component,SLinkList[MAXSIZE];
我们对数组第一个和最后一个元素做特殊处理,不存数据。我们通常把未使用的的数组元素称为备用链表。而数组第一个元素,即下标为0的元素的cur就存放备用链表的第一个结点的下标。

