main2-3-2.c 两个仅设表尾指针的循环链表的合并(教科书图2.13)
2012-11-03 21:12
204 查看
/* 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
#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
相关文章推荐
- 两个仅设表尾指针的循环链表的合并(教科书图2.13)
- 两个仅设表尾指针的循环链表的合并(教科书图2.13)
- 给你两个有序链表,编写一个函数,把两个链表合并成一个新的有序链表,返回头指针
- 链表——(循环和递归)合并两个排序链表
- day01之合并两个有序链表+实现1+2+3...+n要求不能使用乘除法循环条件判断等
- leetcode 21. Merge Two Sorted Lists 两个单向链表合并 指针与解指针
- 写程序。设ha和hb分别是两个带头结点的非递减有序单链表的头指针,试设计算法,将这两个有序链表合并成一个非递增有序的单链表。要求使用原链表空间,
- 创建循环双链表,并进行两个链表合并操作
- 带头节点的循环链表及两个循环链表的合并
- 合并两个有序的链表为一个有序的链表
- 合并两个排序的链表
- 合并两个排序链表 -lintcode
- 两个链表的合并
- 合并两个排序的链表
- 已知两个链表 la和 lb,其元素值递增排序。编程将la和lb合并成一个递减有序(相同值元素只保留一个)的链表lc。(北方名校经典试题) 本题选做
- 两个有序链表合并算法
- [数据结构]02-线性结构1 两个有序链表序列的合并
- c++ 将两个有序的单链表AB合并到新的单链表C中
- 剑指offer-面试题17-合并两个排序的链表
- 合并两个链表的节点