两个仅设表尾指针的循环链表的合并(教科书图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

*/





posted @ 2014-08-12 21:29  meiyouor  阅读(372)  评论(0编辑  收藏  举报