SHAOXIAOJ正在加载中...

1630: 线性表-2个有序表的合并(顺序存储)

金币值:2 定数:8 时间限制:1.000 s 内存限制:128 M
正确:15 提交:20 正确率:75.00% 命题人:
点赞量:0 收藏量:0 题目类型:程序 知识点: 数据结构-线性表

题目描述

已知线性表LA和LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC且LC中的数据元素仍按值非递减有序列排列。

#include <stdio.h>
#include <stdlib.h>
#define  MAXSIZE  100
//假设建立有序表时输入的数据已经有序
typedef  int  ElemType;
typedef  struct {
	ElemType  *elem; // 顺序表数组的基址
	int   length;    // 顺序表当前元素个数
} SqList;
void initList(SqList &L);
void inputList(SqList &L);
void mergeList(SqList La,SqList Lb,SqList &Lc);
void printList(SqList L);
int main(void) {
	SqList La,Lb,Lc;
	initList(La);
	initList(Lb);
	inputList(La);
	inputList(Lb);
	initList(Lc);
	mergeList(La,Lb,Lc);
	printList(Lc);
	return 0;
}
void initList(SqList &L) {
	L.elem=(ElemType*)malloc(MAXSIZE*sizeof(ElemType));
	L.length=0;
}
void inputList(SqList &L) {
	scanf("%d",&L.length);
	for(int i=0; i<L.length; i++) scanf("%d",&L.elem[i]);
}
void printList(SqList L) {
	for(int i=0; i<L.length; i++) printf("%d ",L.elem[i]);
}

/*仅提交以下代码*/
void mergeList(SqList La,SqList Lb,SqList &Lc) {
	int i=0,j=0,k=0;
	Lc.length=La.length+Lb.length;
	while(i<La.length && j<Lb.length) {
		if(La.elem[i]<=Lb.elem[j]) {

		} else {

		}
	}
	while(i<La.length) {

	}
	while(j<Lb.length) {

	}
}

输入格式

输入数据共4行:
第1行:LA的数据元素的数目
第2行:LA中的各数据元素,以空格间隔
第3行:LB的数据元素的数目
第4行:LB中的各数据元素,以空格间隔

输出格式

依次输出LC中各数据元素的值。

输入样例    复制

4
1 2 6 7
3
1 3 5

输出样例    复制

1 1 2 3 5 6 7