#include<iostream>
#include<cstdlib>//exit 函数
#define MAX 21010
#define OVERFLOW -1
using namespace std;
int q ;
typedef struct
{
int *elem1,*elem2,*elem3;
int listlen1,listlen2,listlen3;
int listsize1,listsize2,listsize3;
}list;
void CreatList(list &l,int m,int n)
{
l.elem1=new int [MAX];
l.elem2=new int [MAX];
l.elem3=new int [MAX];
/* if(!l.elem1)
exit(OVERFLOW);
if(!l.elem2)
exit(OVERFLOW);
if(!l.elem3)
exit(OVERFLOW);
l.listsize1=MAX;
l.listsize3=MAX;
l.listsize2=MAX*///可以省略;若使用l.listlen则必须定义。
for(int i=0;i<m;i++)
{
cin>>l.elem1[i];
}
for(int i=0;i<n;i++)
{
cin>>l.elem2[i];
}
}
void NewList(list &l,int m,int n)
{
int i=0,j=0,k=0;
while(i<m&&j<n)
{
if(l.elem1[i]<l.elem2[j])
{
l.elem3[k++]=l.elem1[i];
i++;
}
else
{
l.elem3[k++]=l.elem2[j];
j++;
}
}
while(i<m)
{
{l.elem3[k++]=l.elem1[i];
i++;}
}
while(j<n)
{
{l.elem3[k++]=l.elem2[j];
j++;}
}
}
int main()
{
int len,m,t,k,n,i;
cin>>m>>n;
list newlist;
CreatList(newlist,m,n);
NewList(newlist,m,n);
for(i=0;i<n+m;i++)
{
if(i!=n+m-1)
cout<<newlist.elem3[i]<<" ";
else cout<<newlist.elem3[i]<<endl;
}
return 0;
}
3329顺序表应用5:有序顺序表归并
最新推荐文章于 2020-03-12 16:48:46 发布