有序表归并算法实现RT,对任意输入的两个按值非递减有序的整数序列,写一程序将它们归并成一个按值非递减有序序列.输入描述文

有序表归并算法实现
RT,
对任意输入的两个按值非递减有序的整数序列,写一程序将它们归并成一个按值非递减有序序列.
输入描述
文本文件“input.txt”中保存了n个测试用例,文件以-1结束.每个用例的第一行m1表示第一个待归并有序序列的元素个数,第二行为该序列的m1个元素,第三行m2表示第二个待归并有序序列的元素个数,第四行为该序列的m2个元素.
输出描述
输出结果保存在文本文件“output.txt”中.对于每个测试用例均有二行输出,第一行输出“Case #:##”,#表示用例的编号(1…n),##表示归并后有序序列的元素个数;第二行输出##个按值非递减有序元素.
输入示例
5
1 4 8 10 30
7
2 4 20 35 50 60 86
3
38 45 100
4
38 50 100 120
-1
输出示例
Case 1:12
1 2 4 4 8 10 20 30 35 50 60 86
Case 2:7
38 38 45 50 100 100 120
只求输入输出结果一致,另外······有input和output文件
nicesuper 1年前 已收到1个回答 举报

zcj1002 幼苗

共回答了13个问题采纳率:92.3% 举报

PROC union(VAR LA:Linear_list; LB:Linear_list);
{将所有在线性表LB中存在而线性表LA中不存在的数据元素插入到线性表LA中去}
n := LENGTH(LA); {确定线性表LA的长度}
FOR i:=1 TO LENGTH(LB) DO
[
x:=GET(LB,i);{取得LB中第i个数据元素}
k:=LOCATE(LA,x);{在LA中进行搜索}
IF k=0 THEN
[
INSERT(LA,n+1,x);
n:=n+1;
]
{将LA中不存在的元素插入到LA中,同时修改n的值}
]
ENDP;{union}

C语言实现--顺序存储结构

#include
using namespace std;
struct sqlist//顺序存储结构
{
int elem[10];
int last;
};
void Union (struct sqlist *LA, struct sqlist *LB);
int Locate (struct sqlist *temp, int x);
//
void create(int elements[], int num, struct linklist* l)
{
struct linklist* p;
int i = 0;
//先建立一个空表
(*l).next = NULL;
for (i=num-1; i>=0; i--)
{
p = (struct linklist*)malloc (sizeof(linklist));
(*p).data = elements[i];
//前插式创建
(*p).next = (*l).next;
(*l).next = p;
}
}

1年前

3
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.122 s. - webmaster@yulucn.com