数据结构考研复习--线性表2
2015-10-17 13:43
477 查看
2 厦门大学 2000 15分
有序线性表的合并:这个比较基础,例如给出两个链表,
h1 :1 3 5 7 9
h2 : 0 2 4
合并的结果就是 0 1 2 3 4 5 7 9
这个比较简单,直接上代码
先搭建测试环境
直接上代码
有序线性表的合并:这个比较基础,例如给出两个链表,
h1 :1 3 5 7 9
h2 : 0 2 4
合并的结果就是 0 1 2 3 4 5 7 9
这个比较简单,直接上代码
先搭建测试环境
typedef struct _LinkList { int data; struct _LinkList *next; }LinkList; /*构建两个有序链表*/ void creat1(LinkList *head) //1 3 5 7 9 { int i = 0; LinkList *pcur = head; for (i = 0; i<5;i++) { LinkList *pm = (LinkList*)malloc(sizeof(LinkList)); pm->data = 2*i+1; pm->next = NULL; pcur->next = pm; pcur = pm; } } void creat2(LinkList *head) // 0 2 4 { int i = 0; LinkList *pcur = head; for (i = 0; i<3;i++) { LinkList *pm = (LinkList*)malloc(sizeof(LinkList)); pm->data = 2*i; pm->next = NULL; pcur->next = pm; pcur = pm; } }
直接上代码
LinkList * addList(LinkList *h1, LinkList *h2) { LinkList *p1 = h1->next; LinkList *p2 = h2->next; LinkList *phead = (LinkList *)malloc(sizeof(LinkList)); LinkList *pcur = NULL; if (h1->data >= h2->data) //判断哪一个链表放在前面 { phead = h2; } else { phead = h1; } pcur = phead;//这是我们的舞台 while (p1 && p2 ) { //思想就是把两个链表小的通过尾插发放在舞台上 if (p1->data <= p2->data) { pcur->next = p1; pcur = p1; p1= p1->next; } else { pcur->next = p2; pcur = p2; p2= p2->next; } } //如果两个链表还有没有结束的,直接放在后面就行了 if (p1) { pcur->next = p1; } else { pcur->next = p2; } return phead; }
相关文章推荐
- 数据结构与算法(选择性插入排序)
- 数据结构考研复习--线性表1
- 1.数据结构和算法的基础笔记
- SDUT 数据结构实验之栈六:下一较大值(二)
- 数据结构与算法是什么
- 数据结构考试
- THU数据结构编程作业一:列车调度(Train)
- Language of FatMouse(trie树)
- Python基本数据结构 习题及源码
- 数据结构基础7_链队的实现
- 数据结构之链表(链接)
- 堆排序
- 数据结构实验之栈六:下一较大值(二)【OJ-3333】【自己写的封装的栈代码】
- hbase系统架构及数据结构
- 【数据结构与算法分析】1.1 找出N个数字中第K大的数
- 数据结构栈应用之进制转换
- What Are You Talking About(trie树或map)
- opencv学习笔记(十三)——数据结构
- 数据结构c字符串操作语言版本
- 《数据结构与算法分析-C语言描述》中的字谜问题