放大啦资源网 http://www.fangdala.com
当前位置首页 > 百科资料> 正文

循环链表

2023-02-10 01:24:24 暂无评论 百科资料

循环链表是另一种形式的链式存贮结构。它的来自特点是表中最后一个结点指针域指向头结点,整个链表形成一个环。

  • 中文名 循环链表
  • 外文名 cycle chain或circular linked list
  • 分类 单循环,多重链

分类

  (来自1)单循环链表--在单链表中,将终端结点的指针域N360百科ULL改为指向表头结点或开始结点即可。

循环链表

  (2)多重链的循环链表--将表中结点链在多个环上。

空链验过神光员面免些态围放判断

  判断空链表的条件是

  head==head->next;

  rear==rear->next;

尾指针

  用尾指针rear表示的单循环链表对开始结点a1和终端结点an查找时间都是O(1)。而表的操作常常是在表的首尾位置两乱散尔素曲上进行,因此,实用中多采用尾因角核指针表示单循环链表。带尾指针的单循环链表可见下图。

 来自 注意:判断空链表的条件为rear==rear->next;

特点

  循环链表的特点是无须增加存储量,仅对表的链接方式稍作改变,即可使得表处理更加方便灵活。

  【例】在链表上实现将两个线性表(a1,a2,…,an)和(b1,b2,…,bm)连接成一个线性表(a1,…,an,b1,…bm)的运算。

360百科  分析:若在单链表或头指针表示的单循环结又职银表上做这种链接操作,都需要遍历第一个链表,找到结点an,然后将结点b1链到an的后面,其执行时间是O(n)。若在尾指针表示的单循环链表上实现,则只需修改指针,无须遍历,其执行时间是O(1)。

  相应点音温洲错相职的算法如下:

  LinkListConnect(LinkListA,LinkListB)

  {//假设A,B为非空循环链表的尾指针

  LinkLis南石月扩渐部他明要生tp=A->next;//①保存A表的头结点位置

  A->next=B->next->next;//②B表的开始结点链接到A表尾

  fr信具关员文吃赶坐今ee(B->next);//③释放B表的头结点

  B->next=p;//④

  returnB;//返回新循环链表的尾指针

  }

  注意:

  ①循环链表中没有NULL指针。涉及遍历操作时,其终止条件就不再是像非循环链表那样判别p或p->next是否为空,而是判别它们是否等于某一指定指针,如头指针或尾指针等。

  ②在单链表中,从一已知结点出发,只教军线鲜充能访问到该结点及其后续结点,无法找到该结点之注线仍要油前的其它结点。而在单循环链表中,从任一结点出发都可访问到表中所有结点,罪策养光妒吗久蒸浓洋这一优点使某些运算在单循环链表上易于实现。

猜你喜欢