游标链表也称作静态链表,是一种用数组实现的链表。一般数组是一个顺序链表,只能按下标索引来访问。
通过记录下一个元素在数组中的索引,我们可以实现一个游标链表。
定义游标链表中元素结构:显然,除了保存数据之外,而外我们需要知道下一个元素的数组下标。

初始化创建游标链表:初始化时创建动态数组,并初始化每个数据。
创建链表时,我们将每个元素的next值设置为下一个位置,最后一个元素的next值为0。

数组中实则需要保存两个链表,一个为已添加数据的链表,一个为剩余空间链表。
我们使用数组节点0中next保存剩余空间链表头结点,value保存已添加数据链表头结点。
数据结构如下图所示:

插入操作:了解节点0数据作用之后,我们在实现插入操作时,第一判断0节点next值。如果可以插入,则调整相应的节点序号。
第一获取0节点next值,即下一个节点的下标pos。然后将0节点next值设置为pos中next值。
在设置pos中next值为0节点value值,最后设置0节点value值为pos。这样就正确设置两个链表。

查找操作:在已插入数据链表中查找数据。所以,从0节点value值下标处开始遍历查找。

删除操作:第一查询数据,然后需要正确设置两个链表。
假设找到删除数据下标为pos,第一需要保证已添加数据链表不被中断。我们还需要获取上一个数据的下标prev。设置prev的next值为pos的next值。
再将pos添加到剩余链表中,设置pos的next值为0节点next值,然后将0节点next值设置为pos。

释放链表:在创建链表时,我们使用动态数组方式。所以,虽然简单,但还是必须要定义相应的释放操作。

最后,添加数据与打印数据结构,验证游标链表程序。


© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...



