学科分类
目录
数据结构

什么是循环链表

循环链表是首尾相接的一种链表,它尾结点的后继指针又指向链表的第一个结点,这样形成了一个环。对于循环链表,从表中的任何一个结点出发,能找到其它所有的结点。如图1所示,是一种单向的循环链表。

图1 单循环链表

循环链表的形式有好几种,如双循环链表、多重循环链表(将表中结点链在多个环上)等。多重循环链表示例如图2所示。

图2 多重循环链表

图2就是一个多重循环链表,元素26所在的结点既在左边的循环链中,又在右边的循环链中。多重循环链表并不常用,我们在讲循环链表时,主要讲解的是单链的循环链表。

循环链表,既有单链表的优点又有双向链表的优点,相对于单链表,双向链表需要为每个结点增加部分存储空间保存前驱指针的信息,而循环链表无须增加储存量,只是改变了尾结点中后继指针的指向,就使操作更加灵活多变。需要注意的是,循环链表中没有NULL指针,涉及遍历操作时,其终止条件就不再是非循环链表中判别pNode->next是否为空,而是判别它们是否等于某一指定指针,如头指针或尾指针等,用代码表示,如下所示:

if(pNode->next == pHead->next)
{
  …
}
点击此处
隐藏目录