`
jaychang
  • 浏览: 716613 次
  • 性别: Icon_minigender_1
  • 来自: 嘉兴
社区版块
存档分类
最新评论

有序线性链表归并

 
阅读更多
#include<stdio.h>
#include<stdlib.h>

struct LNode{
	int data;
	LNode* next;
};

typedef LNode* LinkedList;

void ListCreate(LinkedList &list,int length){
	LNode* p = list;
	p->next = NULL;
	for(int i = 0 ; i < length; i ++){
		LNode* newNode = (LNode*)malloc(sizeof(LNode));
		scanf("%d",&newNode->data);
		newNode->next = NULL;
		p->next = newNode;
		p = p->next;
	}
	
}

void MergeList(LinkedList &la,LinkedList &lb,LinkedList &lc){
	LNode* pa;LNode *pb;LNode *pc;
	pa = la->next;
	pb = lb->next;
	lc= pc = la;
	while(pa&&pb){
		if(pa->data < pb->data){
			pc->next = pa;
			pc = pa;
			pa = pa->next;
		}else if(pa->data == pb->data){
			pc->next = pa;
			pc = pa;
			pa = pa->next;
			LNode* tmp = pb;
			pb = pb->next;
			free(tmp);
		}else{
			pc->next = pb;
			pc = pb;
			pb = pb->next;
		}
	}
	pc->next = pa ? pa : pb;
	free(lb);
}

void ListPrint(LinkedList &list){
	LNode* p = list->next;
	while(p){
		printf("%d ",p->data);
		p = p->next;
	}
	printf("\n");
}

int main(){
	LinkedList linklistA = (LinkedList)malloc(sizeof(LNode));
	LinkedList linklistB = (LinkedList)malloc(sizeof(LNode));
	LinkedList linklistC;

	int lenA,lenB;

	printf("Input LinkedListA's length:\n");
	scanf("%d",&lenA);
	ListCreate(linklistA,lenA);


	printf("Input LinkedListB's length:\n");
	scanf("%d",&lenB);
	ListCreate(linklistB,lenB);
	
	MergeList(linklistA,linklistB,linklistC);
	
	ListPrint(linklistC);
	return 0;
}

 

0
3
分享到:
评论

相关推荐

    c++两有序单链表的合并算法

    求表长以及有序单链表的合并算法的实现 [问题描述] 假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并计算表长。要求利用原来两个...

    循环链表算法.zip

    算法是解决特定问题或执行特定任务的一系列步骤或规则的有序集合。在计算机科学中,算法通常用来指导计算机执行特定的任务或解决问题。良好设计的算法能够有效地解决问题,并且在给定的输入下能够产生正确的输出。 ...

    双向链表算法.zip

    算法是解决特定问题或执行特定任务的一系列步骤或规则的有序集合。在计算机科学中,算法通常用来指导计算机执行特定的任务或解决问题。良好设计的算法能够有效地解决问题,并且在给定的输入下能够产生正确的输出。 ...

    数据结构与算法.xmind

    链表是离散存储线性结构 优点 空间没有限制 插入删除元素很快 缺点 存取速度很慢 链表分类 单向链表 一个节点指向下一个节点 双向链表 一个节点有两个指针域 ...

    《数据结构 1800题》

    有序表 D. 单链表 二、判断题 1. 数据元素是数据的最小单位。( ) 【北京邮电大学 1998 一、1(2分)】【青岛大学 2000 一、1 (1分)】 【上海交通大学 1998 一、1】 【山东师范大学 2001 一、1 (2分)】 2. ...

    两个递减线性表的合并

    从键盘输入两个单链表A和B,其表中元素递减有序,编写程序将A和B归并成一个按元素值递减有序的单链表C。分别输出单链表A、B和C所有结点的值。

    构建大顶堆leetcode-data-structures-and-algorithms:数据结构和算法&编码访谈&LeetCode

    有序链表 栈 顺序栈 链式栈 十进制转二进制 浏览器的前进、后退功能 队列 顺序队列 链式队列 顺序双端队列 链式双端队列 循环队列 击鼓传花游戏 回文检查器 递归 斐波那契数列 求 n 的阶乘 数据集合的全排列 排序 ...

    严蔚敏:数据结构题集(C语言版)

    2.3.1 线性链表 2.3.2 循环链表 2.3.3 双向链表 2.4 一元多项式的表示及相加 第3章 栈和队列 3.1 栈 3.1.1 抽象数据类型栈的定义 3.1.2 栈的表示和实现 3.2 栈的应用举例 3.2.1 数制转换 3.2.2 括号匹配的检验 ...

    算法-第4版-完整版

    3.4.3 基于线性探测法的散列表 300 3.4.4 调整数组大小 304 3.4.5 内存使用 306 3.5 应用 312 3.5.1 我应该使用符号表的哪种实现 312 3.5.2 集合的API 313 3.5.3 字典类用例 315 3.5.4 索引类...

    算法 第4版-谢路云译-带完整书签

    3.4.3 基于线性探测法的散列表 300 3.4.4 调整教组大小 304 3.4.5 内存使用 306 3.5 应用 312 3.5.1 我应该使用符号表的哪种实现 312 3.5.2 集合的API 313 3.5.3 字典类用例 315 3.5.4 索引类用例 ...

    算法 第4版 高清中文版

    3.4.3 基于线性探测法的散列表 300 3.4.4 调整数组大小 304 3.4.5 内存使用 306 3.5 应用 312 3.5.1 我应该使用符号表的哪种实现 312 3.5.2 集合的API 313 3.5.3 字典类用例 315 3.5.4 索引类用例 318 3.5.5...

    数据结构的电子书(chm版)

    2、3、1 线性链表 2、3、2 循环链表 实验二 2、3、3 双向链表 2、4 一元多项式的表示及相加 3 栈和队列 3、1、0 栈 3、1、1 抽象数据类型栈的定义 3、1、2 栈的表示和实现 3、2、0 栈的应用举例 3、2、1 数制转换...

    c语言数据结构

    2、3、1 线性链表 2、3、2 循环链表 实验二 2、3、3 双向链表 2、4 一元多项式的表示及相加 3 栈和队列 3、1、0 栈 3、1、1 抽象数据类型栈的定义 3、1、2 栈的表示和实现 3、2、0 栈的应用举例 3、2、1 数制转换...

    《算法》中文版,Robert Sedgewick,塞奇威克

    3.4.3 基于线性探测法的散列表 3.4.4 调整数组大小 3.4.5 内存使用 3.5 应用 3.5.1 我应该使用符号表的哪种实现 3.5.2 集合的API 3.5.3 字典类用例 3.5.4 索引类用例 3.5.5 稀疏向量 第4章 图 4.1 无向图...

    算法,4th,塞奇威克 (Robert Sedgewick)韦恩 (Kevin Wayne), 谢路云 译.azw3

    3.4.3 基于线性探测法的散列表 3.4.4 调整数组大小 3.4.5 内存使用 3.5 应用 3.5.1 我应该使用符号表的哪种实现 3.5.2 集合的API 3.5.3 字典类用例 3.5.4 索引类用例 3.5.5 稀疏向量 第4章 图 4.1 无向图 ...

    leetcode分类-algotithm:算法复习

    对于有序数列,才能使用二分查找法 .使用递归的方式实现二分查找 .使用循环的方式实现二分查找 二、数据结构 1.线性结构 数组;栈;队列;链表;哈希表。。。 链表: 优点:真正的动态, 不需要处理固定容量的问题 ...

    精心整理史上最全的数据结构flash演示动画,共5个版本,祝大家考研成功!

    \数据结构flash演示\版本1\2-3-9两个有序链表的连接.swf \数据结构flash演示\版本1\3-2-1栈的应用举例-进制转换.swf \数据结构flash演示\版本1\3-3-10链队列.swf \数据结构flash演示\版本1\3-3-11链队列-入队.swf...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar

    11.9 链表的概念 182 11.10 枚举类型 184 11.10.1 枚举类型的定义和枚举变量的说明 184 11.10.2 枚举类型变量的赋值和使用 185 11.11 类型定义符typedef 12 位运算 12.1 位运算符C语言提供了六种位运算符: 189 ...

Global site tag (gtag.js) - Google Analytics