main2-3-2.c 两个仅设表尾指针的循环链表的合并(教科书图2.13)

本文介绍了一种将两个仅设置表尾指针的循环链表进行合并的方法,并提供了完整的C语言实现代码。通过该算法,可以有效地将链表Lb合并到链表La的表尾,形成一个新的链表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 /* algo2-10.c 两个仅设表尾指针的循环链表的合并(教科书图2.13) */
 #include"c1.h"
 typedef int ElemType;
 #include"c2-2.h"
 #include"bo2-4.c"
 #include"func2-3.c" /* 包括equal()、comp()、print()、print2()和print1()函数 */

 void MergeList(LinkList *La,LinkList Lb)
 { /* 将Lb合并到La的表尾,由La指示新表 */
   LinkList p=Lb->next;
   Lb->next=(*La)->next;
   (*La)->next=p->next;
   free(p);
   *La=Lb;
 }                                            ?????????????

 int main()
 {
   int n=5,i;
   LinkList La,Lb;
   InitList(&La);
   for(i=1;i<=n;i++)
     ListInsert(&La,i,i);
   printf("La="); /* 输出链表La的内容 */
   ListTraverse(La,print);
   InitList(&Lb);
   for(i=1;i<=n;i++)
     ListInsert(&Lb,1,i*2);
   printf("Lb="); /* 输出链表Lb的内容 */
   ListTraverse(Lb,print);
   MergeList(&La,Lb);
   printf("La+Lb="); /* 输出合并后的链表的内容 */
   ListTraverse(La,print);
 }

 

运行:

[root@localhost algorithm]# gcc algo2-10.c -o algo2-10
[root@localhost algorithm]# ls
algo2-10  algo2-10.c  bo2-4.c  c1.h  c2-2.h  func2-3.c
[root@localhost algorithm]# ./algo2-10
La=1 2 3 4 5
Lb=10 8 6 4 2
La+Lb=1 2 3 4 5 10 8 6 4 2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值