两个仅设表尾指针的循环链表的合并(教科书图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 */
每当夜深人静的时候,想想今天发生了什么,失去了什么,得到了什么,做了什么,没做什么,该做什么,不该做什么,明天要做什么!