两个仅设表尾指针的循环链表的合并(教科书图2.13)
// algo2-10.cpp 两个仅设表尾指针的循环链表的合并(教科书图2.13)
#include"c1.h"
typedef int ElemType;
#include"c2-2.h"
#include"bo2-4.cpp"
#include"func2-3.cpp" // 包括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;
}
void 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);
}代码的运行结果如下:
<pre name="code" class="cpp">/* La=1 2 3 4 5 Lb=10 8 6 4 2 La+Lb=1 2 3 4 5 10 8 6 4 2 Press any key to continue */
每当夜深人静的时候,想想今天发生了什么,失去了什么,得到了什么,做了什么,没做什么,该做什么,不该做什么,明天要做什么!

浙公网安备 33010602011771号