从无到有算法养成篇-链式存储结构之循环链表

Posted 文宇肃然

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从无到有算法养成篇-链式存储结构之循环链表相关的知识,希望对你有一定的参考价值。

前言

循环,顾名思义就是:绕。

打个比方,就是从前山上有座庙,庙里有个老和尚和一个小和尚,有一天老和尚对小和尚说“从前山上有座庙,庙里有个老和尚和一个小和尚,有一天老和尚对小和尚说“从前~~

对于单链表,由于每个结点只存储了向后的指针,到了尾部标识就停止了向后链的操作。也就是说,按照这样的方式,只能索引后继结点不能索引前驱结点。这样一来,不从头结点出发,这样就无法访问到全部结点。

为了解决这个问题,我们只需要将单链表的尾结点的指针由空指针改为指向头结点的指针,问题就结了。

将单链表中尾结点的指针由空指针改为指向头结点,就使整个单链表形成一个环,这种头尾相接的单链表成为单循环链表,简称循环链表

:这里并不是说循环链表一定有头结点

其实循环链表的单链表的主要差异就在于循环的判断空链表的条件上,原来判断head->next是否为空,现在则是head->next是否等于head;

终端结点用尾指针rear指示,则查找终端结点是O(1),而开始结点是rear->next->next,当然也是O(1)

以上是关于从无到有算法养成篇-链式存储结构之循环链表的主要内容,如果未能解决你的问题,请参考以下文章

数据结构第五篇——线性表的链式存储之循环链表

线性结构之循环链表实现

数据结构与算法笔记—— 链表(单链表循环链表双向链表)

数据结构——双向链表循环链表

链表之循环链表

数据结构与算法合集