一、循环链表的概述
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;
}