数据结构与算法

循环链表

循环链表:是一种头尾相接的链表(即:表中最后一个结点的指针域指向头结点,整个链表形成一个环)

image.png

  • 优点: 从表中任一结点出发均可找到表中其他结点
  • 注意L由于循环链表中没有NULL指针,故设计遍历操作时,其终止条件不再像肺循环链表那样判断p或p->next是否为空,而是判断他们是否等于头指针。
//循环条件:
   p!=L;
   p->next!=L;

image.png

如何将带尾指针循环链表的合并(将Tb合并在Ta之后)

image.png

【操作分析】

  • p存表头结点 p=Ta->next;
  • Tb表头链接Ta表尾 Ta->next =Tb->next->next;
  • 释放Tb表头结点 delete Tb->next;
  • 修改指针 Tb->next=p;
LinkList Connect(LinkList Ta,LinkList Tb){
   p=Ta->next;
   Ta->next = Tb->next->next;
   delete Tb ->next;
   Tb->next = p;
   return Tb;
}//时间复杂度O(1)
posted @ 2022-09-11 15:08  jerry-autumn  阅读(33)  评论(0)    收藏  举报