提出将数组的元素都是由两个数据域组成,data 和 cur。也就是说,数组的每个下标都对应一个 data 和一个 cur。 数据域data ,用来存放数据元素, 也就是通常我们要处理的数据;而游标 cur 相当于单链表中的 next 指针,存放该元素的后继在数组中的下标。
把这种用数组描述的链表叫做静态链表,这种描述方法还叫做游标实现法。
为了我们方便插入数据,我们通常会把数组建立得大一些,以便有一些空闲空间可以便于插入时不至于溢出。
/*线性求的静态链求存储结构* /
#define MAXSIZE 1000 /*假设钱求的最大长度是 1000*/
typedef struct
{
ElernType data;
int cur; /*游标 (Cursor) .为 0 时表示元,指向8/
)
另外我们对数组第一个和最后一个元素作为特殊元素处理,不存数据。我们通常把未被使用的数组元素称为备用链表。而数组第一个元素,即下标为 0 的元素的 cur就存放备用链表的第一个结点的下标 ; 而数组的最后一个元素的 cur 则存放第一个有数值的元素的下标,相当于单链表中的头结点作用.如下图所示(可以形象的看出)
然后,大家分析一下下面这个图,能不能理解?欢迎大家在评论区评论?有问题的话,可以通过邮箱联系我奥(1834714978@qq.com)。
然后我们再来谈一下,静态链表优缺点
总的来说,静态链表其实是为了给没有指针的高级语言设计的一种实现单链表能力的方法。尽管大家不一定会用得上,但这样的思考方式是非常巧妙的,应该理解其思想,以备不时之需。
欢迎大家在讨论区讨论。