尾节点的next不指向null了,指向前面的节点(大多是指向第一个数据节点),整个链表形成一个环,这就是环形链表。
环形链表比单链表更实用,可以解决很多问题,比如十二星座:
更适合用环形链表去实现,“双鱼座”结束了又变回了“白羊座”。
环形链表的优点:
1、功能增强了(循环链表只是在单链表的基础上做了一个加强)。
2、循环链表可以完全取代单链表的使用。
3、循环链表的 Next 和 Current 操作可以高效的遍历链表中的所有元素
环形链表的缺点:
代码复杂度提高了(成也萧何败萧何)
环形链表的数据操作设计原理演示:
楠神先用几个图示演示环形链表的数据操作原理,下一节继续分享韩顺平的环形链表的笔记,一个丢手绢的问题(约瑟夫问题)。
插入操作:
1、普通插入数据(和单链表是一样的)
2、尾插法
分析:最后一个结点的 next 指针指向新添加的结点,新结点的 next 指向第一个结点。
3、头插法
分析:新节点指向当前的第一个结点,head节点、尾结点指向新节点。
4、第一次插入节点
分析:尾节点指针指向第一个数据节点(即自己指向自己)
删除操作:
1、删除普通节点
2、删除头节点
分析:head节点、尾结点指向第二个数据节点