循环链表
一种头尾相接的链表(表中最后一个结点的指针域指向头结点,整个链表形成一个环)
优点:从表中任意结点出发均可找到表中其他结点
循环链表是否为空的条件是:判断它们是否等于头指针
- p != L
- p -> next != L
将两个循环链表合并
算法思路:
- p存表头结点
- Tb表头连接到Ta表尾
- 释放Tb表头结点
- 修改指针(Tb尾结点指向Ta头结点)
算法描述:
LinkList Connect(LinkList Ta, LinkList Tb){
//假设Ta,Tb都是非空的单循环链表
p = Ta -> next; //p存表头结点
Ta -> nxet = Tb -> next -> next; //Tb表头连结Ta表尾
delete Tb -> next; //释放Tb表头结点
//或free(Tb -> next)
Tb -> next = p; //修改指针
return Tb;
}