文章来源:http://blog.seclibs.com/数据结构之循环链表-c语言实现/
之前在链表那一节说了单链表、双向链表和循环链表,前面已经把单链表和双向链表用代码实现过了,当时没有实现循环链表是在实现的过程中有一点没有想明白,今天在实现栈的时候突然相通了,就把这两条给补上。
循环链表有两种实现方式,循环单链表和循环双向链表
因为在前面的实现过程中,我的考虑不是很全面,导致后面在它们的基础上进行修改的时候出现了很多问题,在循环链表的实现当中,我在几乎每一个函数前面都加了一条语句struct link* x = list;为了将链表头结点的内存地址给保留下来,在前面的实现当中,为了保证插入数据的时候在末尾插入,我将list的值进行了移动,导致现在需要头结点的内存地址时没有任何的保留了。
如果需要下载代码请移步至文末
循环单链表
循环双向链表
代码:
循环单链表:GitHub
循环双向链表:GitHub
文章首发公众号和个人博客:
公众号:无心的梦呓(wuxinmengyi)