3
5 7 9
2
5 8
5
7
8
9
程序框架
#include<stdio.h> //若用printf,scanf,getchar,putchar,gets,puts函数需包含该头文件
#include<malloc.h> //用malloc,free,realloc函数需包含该头文件
#include<stdlib.h>
#define MAXSIZE 1001 //设线性表初始分配空间大小
#define LISTINCREMENT 10 //设线性表存储空间分配增量
#define ERROR 0
#define OVERFLOW 0
#define OK 1
typedef int ElemType; //先设定数据元素的类型为整型
//0:定义顺序表的结构类型
typedef struct{
ElemType *elem;
int length;
int listsize;
}SqList;
//1:初始化顺序表
int InitList_Sq(SqList &L )
{
L.elem=(ElemType*)malloc(sizeof(ElemType)*MAXSIZE);
if (!L.elem) return 0;
L.length=0;
L.listsize=MAXSIZE;
return OK;
}
//2:打印顺序表中所有元素
void PrintList(SqList &L)
{
int i;
for(i=0;i<L.length;i++)
printf("%d\n",L.elem[i]);
}
//3:合并两个有序的顺序表,La,Lb有序,合并到Lc
void MergeList(SqList La, SqList Lb, SqList &Lc)
{
//--------补充代码--Start------
//--------补充代码--End-------
}
//主函数
int main()
{
//以下代码请认真阅读,切勿做任何修改
//将list[0]和list[1]合并到list[2]
SqList list[3];
int i,k,n,e;
//构造2个数据表
for(k=0;k<2;k++)
{
//初始化顺序表list 1,2
InitList_Sq(list[k]);
//有序输入第k个顺序表数据元素个数
scanf("%d",&n);
//依次读取n个数据插入顺序表
for(i=0;i<n;i++)
{
//输入数据元素
scanf("%d",&e);
//插入顺序表
list[k].elem[i]=e;
}
//数据元素个数赋值
list[k].length=n;
}
//初始化顺序表list 3
InitList_Sq(list[2]);
//-----------------------------------
//执行合并操作
MergeList(list[0], list[1], list[2]);
//按顺序输出顺序表list[3]中元素
PrintList(list[2]);
return OK;
}