特殊的链表——循环链表

一、循环链表的概述

 

1、循环链表( Circular LinkedList)是另一种形式的链式存储结构。其特点是表中最后一个结点

的指针域指向头结点,整个链表形成一个环。

2、由此,从表中任一结点出发均可找到表中其他结点。

3、优点:从表中任意结点出发均可找到表中其他结点。

二、循环链表与单链表的区别

1、循环链表的操作和单链表基本一致。

2、差别在于:当遍历链表时,判别当前指针P是否指向表尾结点的终止条件不同。

3、由于循环链表中没有NULL指针,故涉及遍历操作时,其终止条件就不再像单链表那样判断p或p->next是否为空,而是判断它们是否等于头指针。

4、下列为单链表和循环链表终止条件的比较,如下图所示:

 三、带尾指针循环链表的合并

1、如下图所示,将Ta和Tb合并

3、循环链表合并的算法

LinkList Connect(LinkList Ta, LinkList Tb){

                                                     //假设Ta、Tb都是非空的单循环链表

p=Ta->next;                                         //①p存表头结点

Ta->next= Tb->next->next;                         //②Tb表头连结Ta表尾
delete Tb->next;                               //③释放Tb表头结点或free(Tb->next);

Tb->next=p;                                     //④修改指针
return Tb;

}


版权声明:本文为kxbdys原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。