1、定义游标链表中元素结构:显然,除了保存数据之外,而外我们需要知道下一个元素的数组下标。
2、初始化创建游标链表:初始化时创建动态数组,并初始化每个数据。创建链表时,我们将每个元素的next值设置为下一个位置,最后一个元素的next值为0。
3、数组中其实需要保存两个链表,一个为已添加数据的链表,一个为剩余空间链表。我们使用数组节点0中next保存剩余空间链表头结点,value保存已添加数据链表头结点。数据结构如下图所示:
4、插入操作:了解节点0数据作用之后,我们在实现插入操作时,首先判断0节点next值。如果可以插入,则调整相应的节点序号。首先获取0节点next值,即下一个节点的下标pos。然后将0号俗劭蜾节点next值设置为pos中next值。在设置pos中next值为0节点value值,最后设置0节点value值为pos。这样就正确设置两个链表。
5、查找操作:在已插入数据链表中查找数据。所以,从0节点value值下标处开始遍历查找。
6、删除操作:首先查询数据,然后需要正确设置两个链表。假设找到删除数据下标为pos,首先需要保证已添加数据链表不被中断。我们还需要获取上一个数据的下标prev。设置prev的next值为pos的next值。再将pos添加到剩余链表中,设置pos的next值为0节点next值,然后将0节点next值设置为pos。
7、释放链表:在创建链表时,我们使用动态数组方式。所以,虽然简单,但还是必须要定义相应的释放操作。
8、最后,验证游标链表程序。添加数据与打印数据结构。