新手学习数据结构与算法---链表归并
2011-10-16 17:18
417 查看
链表的归并要比数组的简单很多啊!
//链表归并 #include <stdio.h> #include <stdlib.h> typedef struct Node { int data; struct Node * next; }LinkList; LinkList * Create() { LinkList *Head, *S, *R; int data; Head = (LinkList *)malloc(sizeof(LinkList)); Head->next = NULL; //建立空单链表 R = Head; scanf("%d", data); while(data != -1) { S = (LinkList *)malloc(sizeof(LinkList)); S->data = data; S->next = R->next; R->next = S; R = S; scanf("%d", data); } return Head; } void PrintLinkList(LinkList * p) //打印单链表 { p = p->next; while(p != NULL) { printf("%4d", p->data); p = p->next; } } LinkList * Merge(LinkList *A, LinkList *B) //将B链表的值放到A中 { LinkList *p, *q, *prep, *preq; p = A->next; q = B->next; prep = A; preq = B; while((p != NULL) && (q != NULL)) { if(p->data < q->data) { prep = p; p = p->next; } else //否则将B的值插到A中 { preq = q; q = q->next; prep->next = preq; preq->next = p; prep = prep->next; } } if(q != NULL) prep->next = q; return A; } int main() { //自己测试 }
相关文章推荐
- 新手学习数据结构与算法---单链表的基本操作
- 新手学习数据结构与算法---链表多项式
- 《Delphi 算法与数据结构》学习与感悟[9]: 循环链表
- 《Delphi 算法与数据结构》学习与感悟[10]: 双向链表
- 数据结构学习两个链表的归并
- 新手学习数据结构与算法---冒泡排序
- 《Delphi 算法与数据结构》学习与感悟[6]: 一个简单的"单向链表"
- 《Delphi 算法与数据结构》学习与感悟[7]: 链表与数组的异同
- 数据结构学习笔记 --- 线性表 (一些常见的关于链表的算法和面试题)
- 《Delphi 算法与数据结构》学习与感悟[8]: 单向链表的添加、删除与遍历
- 新手学习数据结构与算法---开始篇
- 新手学习数据结构与算法---堆栈的应用之进制转换
- 新手学习数据结构与算法---数组元素的排列与组合
- 数据结构学习笔记 --- 线性表 (一些常见的关于链表的算法和面试题)
- 数据结构入门学习系列-5(链表的基本操作算法)
- 算法与数据结构之十----内核中的链表操作学习
- C#数据结构和算法学习系列十三----链表
- 数据结构之有序链表归并算法1
- 算法与数据结构学习 10 链表操作
- 数据结构与算法学习笔记之 提高读取性能的链表(上)