数据结构整理_有序链表合并
2015-05-19 11:44
225 查看
线性表的应用类吧,是两个链表的合并,前提是两个表都已经按序排好。通过VC++6.0整理!
// 整理_有序链表合并.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <stdio.h> #include <stdlib.h> typedef int ElementType; typedef struct Node { ElementType data; struct Node *node; }Node; void InitList(Node **head); void InitListAtTail(Node **head, ElementType data[], int n); void Merge(Node *la, Node *lb, Node **lc); void Destroy(Node *head); int main(int argc, char* argv[]) { Node *la = NULL, *lb = NULL, *lc = NULL; ElementType a[] = {1,6,7,9,16,30,39}; ElementType b[] = {2,7,8,9,36,78,99,133,1255}; InitListAtTail(&la, a, sizeof(a)/sizeof(a[0])); InitListAtTail(&lb, b, sizeof(b)/sizeof(b[0])); Merge(la, lb, &lc); Destroy(lc); return 0; } //初始化链表,会创建一个无用节点,即head所指向的节点 void InitList(Node **head) { *head = (Node *)malloc(sizeof(Node)); (*head)->node = NULL; } //尾部插入创建 void InitListAtTail(Node **head, ElementType data[], int n) { Node *p = NULL, *q = NULL; int i = 0; InitList(head); q = *head; for(i=0; i<n; i++) { p = (Node *)malloc(sizeof(Node)); p->data = data[i]; p->node = NULL; q->node = p; q = p; } } //合并a链表和b链表,需要表a和表b之前按升序排好 void Merge(Node *la, Node *lb, Node **lc) { Node *p = la->node, *q = lb->node, *r = la; *lc = la; while(p && q) { if(p->data <= q->data) { r->node = p; p = p->node; r = r->node; } else { r->node = q; q = q->node; r = r->node; } } if(p) { r->node = p; } if(q) { r->node = q; } free(lb); } //销毁链表,释放内存 void Destroy(Node *head) { Node *p = head, *q = NULL; while(p) { q = p->node; free(p); p = q; } }测试通过VC++6.0设置断点查看结果得出
相关文章推荐
- 【MOOC—数据结构习题】两个有序链表序列的合并
- 数据结构 P31 算法实现 有序链表合并为有序链表
- 数据结构【线性表(二)链表】项目之合并有序表
- PTA数据结构之两个有序链表序列的合并
- 数据结构【线性表(二)链表】项目之合并有序表(解法二)
- [数据结构]02-线性结构1 两个有序链表序列的合并
- 数据结构-用链表函数实现链表的有序合并
- PAT数据结构_02-线性结构1 两个有序链表序列的合并 (15分)
- 02-线性结构1 两个有序链表序列的合并——中国大学MOOC-陈越、何钦铭-数据结构-2017秋
- 数据结构_中国大学MOOC(慕课)——两个有序链表序列的合并问题
- 数据结构整理_有序顺序表合并
- 【数据结构练习】2.两个有序链表序列的合并
- 【数据结构_链表_最小堆】 链表找环,链表找交点,合并有序链表
- c语言数据结构中两个有序链表合并为一个新链表
- 数据结构学习---有序链表的合并
- 数据结构之将两个递增的有序链表合并为一个递增的有序链表
- c语言版数据结构(奇迹冬瓜)-链表实战(2)合并两有序线性表
- 有序链表的合并(数据结构---单链表)
- 数据结构-剑指offer-合并有序链表
- 数据结构 链表 合并两个有序的单链表 C语言版