0%

数据结构之循环链表-c语言实现

之前在链表那一节说了单链表、双向链表和循环链表,前面已经把单链表和双向链表用代码实现过了,当时没有实现循环链表是在实现的过程中有一点没有想明白,今天在实现栈的时候突然相通了,就把这两条给补上。

循环链表有两种实现方式,循环单链表和循环双向链表

因为在前面的实现过程中,我的考虑不是很全面,导致后面在它们的基础上进行修改的时候出现了很多问题,在循环链表的实现当中,我在几乎每一个函数前面都加了一条语句 struct link* x = list; 为了将链表头结点的内存地址给保留下来,在前面的实现当中,为了保证插入数据的时候在末尾插入,我将list的值进行了移动,导致现在需要头结点的内存地址时没有任何的保留了。

如果需要下载代码请移步至文末

循环单链表

循环双向链表

代码:

循环单链表:GitHub

循环双向链表:GitHub