
上QQ阅读APP看书,第一时间看更新
2.5.2 循环链表的合并操作
在循环单链表中设置尾指针,还可以使有些操作变得简单。例如,要将如图2-23所示的两个循环单链表(尾指针分别为LA和LB)合并成一个链表,只需要将一个表的表尾和另一个表的表头连接即可,如图2-24所示。

图2-23 两个设置尾指针的循环单链表

图2-24 合并两个设置尾指针的循环单链表
将循环单链表合并为一个循环单链表只需要4步操作,第1步保存LA的头指针,p=LA->next;第2步使LA的表尾与LB的第一个结点相连,即LA->next=LB->next->next;第3步释放LB的头结点,即free(LB->next);第4步将LB的表尾与LA的表头相连,即LB->next=p。
对于设置了头指针的两个循环单链表(头指针分别是head1和head2),要将其合并成一个循环单链表,需要先找到两个链表的最后一个结点,分别增加一个尾指针,分别使其指向最后一个结点。然后将第一个链表的尾指针与第二个链表的第一个结点连接起来,第二个链表的尾指针与第一个链表的第一个结点连接起来,就形成了一个循环链表。
合并两个循环单链表的算法实现如下:
