龙空技术网

单向循环链表的存储结构和操作

Linux云计算架构 33

前言:

当前姐妹们对“循环链表的合并算法是什么”大约比较珍视,看官们都需要知道一些“循环链表的合并算法是什么”的相关文章。那么小编也在网络上汇集了一些有关“循环链表的合并算法是什么””的相关文章,希望各位老铁们能喜欢,朋友们一起来了解一下吧!

单向循环链表的存储结构

单向循环链表(Circular Linked List)是单向链表的一种扩充,当单向链表带有头结点时,把单向链表中尾结点的指针域由空指针改为头结点的指针(当单向链表不带头结点时改为指向第一个结点的指针),这样整个链表形成一个回路,从链表中任一个结点出发均可以访问到表中其他结点。图2-13所示为单向循环链表。

带头结点的单向循环链表示意图

两个单向循环链表链成一个单向循环链表

将两个单向循环链表合并成一个带尾指针的单向循环链表。如图2-14,设指针a、b分别是两个待合并的链表A、B的尾指针,只要在A链表尾结点的指针域中存入B链表的第一个结点的指针,这样B链表就接到了A链表的尾部。然后在B链表尾结点的指针域存入A链表的头指针,使合并后的链表成为单向循环链表,且尾指针为b。合并步骤如下:

p=a->next;q=b->next; /*分别得到A、B链表的头指针*/

a->next=q->next; /*A链表尾结点的指针域存入B 链表第一个结点的指针*/

b->next= p;/*B链表尾结点的指针域存入A链表的头指针*/

free(a); free(p); free(q);

两个单向循环链表的合并示意图

标签: #循环链表的合并算法是什么