合并顺序表

原创 2018年04月15日 17:14:22
用顺序表实现教材2.7.1节(42页)的线性表合并(也可以参考课件)。
假设合并后的顺序表的长度不会超出序表可能达到的最大长度。

输入要求

多组输入。
每组输入数据由3行组成。
第一行,输入两个整数a和b,分别代表顺序表的长度。
第二行和第三行,分别输入a个和b个整数。
详见代码和样例输入。

输出要求

见样例输出。每行最后一个整数后有一个空格。
空表用空行表示。

测试数据

输入示例

3 3
1 3 5
5 4 3 

输出示例

la: 1 3 5 4
lb: 5 4 3
 

小贴士

(无)

题目来源

WeJudge原创

#include<stdio.h>
#include<stdlib.h>

#define MAXSIZE 10	// 顺序表可能达到的最大长度 
typedef int ElemType;	// 元素数据类型 
typedef  struct {
	ElemType  *elem;     //指向数据元素的基地址
	int      length;     // 当前长度
} SqList;  // 顺序表

void createSqList(SqList &list, int n); // 根据用户输入,创建n个整数顺序表 
void printSqList(SqList list);			// 打印顺序表	
void mergeSqList(SqList &la, SqList lb);// 实现 A=AUB 

int main(){
	int a,b;
	while(~scanf("%d%d",&a,&b)){
		SqList la, lb, lc;
		createSqList(la, a);
		createSqList(lb, b);
		mergeSqList(la, lb);
		printf("la: ");
		printSqList(la);
		printf("lb: ");
		printSqList(lb);
	}
}


************************************************************************************************************************

#include<stdio.h>
#include<stdlib.h>

#define MAXSIZE 10	// 顺序表可能达到的最大长度 
typedef int ElemType;	// 元素数据类型 
typedef  struct {
	ElemType  *elem;     //指向数据元素的基地址
	int      length;     // 当前长度
} SqList;  // 顺序表

void createSqList(SqList &list, int n); // 根据用户输入,创建n个整数顺序表 
void printSqList(SqList list);			// 打印顺序表	
void mergeSqList(SqList &la, SqList lb);// 实现 A=AUB 

int main(){
	int a,b;
	while(~scanf("%d%d",&a,&b)){
		SqList la, lb, lc;
		createSqList(la, a);
		createSqList(lb, b);
		mergeSqList(la, lb);
		printf("la: ");
		printSqList(la);
		printf("lb: ");
		printSqList(lb);
	}
}

void createSqList(SqList &list, int n){
	list.elem =new ElemType[MAXSIZE];
	for(int i=0;i<n;i++){
		scanf("%d",&list.elem[i]);
	}
	list.length = n;
}

void printSqList(SqList list){
	for(int i=0;i<list.length;i++)
		printf("%d ",list.elem[i]);
	printf("\n");
}	
void mergeSqList(SqList &la, SqList lb){	

	for(int i=0;i<lb.length;i++){
		int num = 0;
		for(int j=0;j<la.length;j++)
		{
			if(lb.elem[i] != la.elem[j])
				num++;	
		}
		if(num==la.length){
			la.length++;
			la.elem[la.length-1] = lb.elem[i]; 
		}			
	}
}


Git技术大全之基础篇

-
  • 1970年01月01日 08:00

c++ 合并两个无序顺序表使其仍无序

将AB两个无序顺序表 合并 使其仍为无序顺序表
  • thwwu
  • thwwu
  • 2017-09-24 20:48:41
  • 319

顺序表的合并

顺序表的合并的前提是合并的两个顺序表都要有序,你可以升序也可以降序,合并后的顺序表的是否为升序或降序就看内部代码的判断,当你输入完两个顺序表的时候,也可以调用冒泡法排序的函数,或者你先初始化两个有序的...
  • u010180915
  • u010180915
  • 2013-10-06 14:52:56
  • 1280

两个有序顺序表合并

这是在做数据结构考研题目时遇到的题。 在这里记录一下,其中有上网参考大家的代码。 题目如下: /* 题目:编写算法,将两个非递减有序顺序表A和B合成一个新的非递减有序顺序表C。 已知顺序表A和B的元素...
  • qs52955339
  • qs52955339
  • 2016-07-07 11:52:09
  • 2120

两个有序顺序表合并为有序表 C++实现

  • 2008年12月07日 19:03
  • 977B
  • 下载

c语言,用顺序表的原理合并两个集合

#include #include #define  N 4 #define  M 5 void display(int num[],int count)   {       int ...
  • u013419097
  • u013419097
  • 2015-12-09 19:45:22
  • 2245

顺序表A和B的合并与排序

用顺序表A和B表示的两个线性表,元素的个数分别是m和n, 若表中数据都是从小到大顺序排列的,且这(m+n)个数据中没有重复的。   (1) 设计一个算法将此两个线性表合并成一个,仍是数据由小到大排列...
  • sanqima
  • sanqima
  • 2015-09-26 20:29:49
  • 5453

顺序表的各种操作以及合并

/*建议初学者要有耐心把每一个操作都熟悉,刚开始肯定会有许多错误, 有些错误还是自己无法看出来的,多看看别人的代码 */ #include #include typedef struct node {...
  • yueloveme
  • yueloveme
  • 2015-07-24 08:59:09
  • 813

数据结构之两顺序表合并

问题有两顺序表LA 和LB,其元素大小均是按照非递减序列排列的,写一方法将他们合并成一个顺序表LC,要求LC的元素大小也是费递减排列算法思路依次扫描LA和LB的元素,比较线性表的LA、LB当前所指的元...
  • qq_28397005
  • qq_28397005
  • 2017-04-13 15:54:32
  • 315

顺序表实现两个集合的合并

#include #include #define  LIST_INIT_SIZE 10 //线性表存储空间的初始分配量 #define  LIST_INCREMENT 10 //线性表存储...
  • yuzuodeyunwcj
  • yuzuodeyunwcj
  • 2015-09-29 14:24:44
  • 880
收藏助手
不良信息举报
您举报文章:合并顺序表
举报原因:
原因补充:

(最多只允许输入30个字)