在此之前先回忆一下单链表。
对于单链表,由于每个结点只存储了向后的指针,到了尾部标识就停止了向后链的操作。也就是说,按照这种方式,只能索引后继结点不能索引前驱结点。这样就带来了一个问题:
如果不从头结点出发,就无法访问到全部结点。
为此有一个解决办法:
只需要将单链表中终端结点的指针端由空指针改为指向头结点,问题就解决了!!
什么是循环列表?
将单链表中终端结点的指针端由空指针改为指向头结点,就使得整个单链表形成了一个环,这种头尾相接的单链表成为单循环链表,简称循环链表。
注意:
这里并不是说循环链表一定要有头结点。
其实循环链表的单链表的主要差异就在于循环的判断空链表的条件上,原来判断head->next是否为null,现在则是head->next是否等于head。
(代码真实令人头大!!!可能回头还得继续将它拿捏一下!!大家如果需要,可以去B站小甲鱼老师C语言数据结构——线性表12集仔细学习!)
C语言数据结构循环链表
最新推荐文章于 2023-10-15 19:18:49 发布