#include<iostream>
using namespace std;
typedef int element;
#define max 100
typedef struct
{
element a[max];
int last;
}sqlist;
void mergelist(sqlist *la,sqlist *lb,sqlist *lc)
{
int i=0,j=0,k=0;
while((i<=la->last)&&(j<=lb->last))
{
if(la->a[i]<=lb->a[j])
{
lc->a[k]=la->a[i];
i++;
k++;
}
else
{
lc->a[k]=lb->a[j];
j++;k++;
}
}
while(i<=la->last)
{
lc->a[k]=la->a[j];
i++;k++;
}
while(j<=lb->last)
{
lc->a[k]=lb->a[j];
j++;k++;
}
lc->last=la->last+lb->last+1;
}
int main()
{
int len,i;
sqlist *la,*lb,*lc;
la=(sqlist *)malloc(sizeof(sqlist));
cout<<"输入链表a的长度:"<<endl;
cin>>len;
la->last=len-1;
cout<<"输入元素"<<endl;
for(i=0;i<len;i++)
cin>>la->a[i];
lb=(sqlist *)malloc(sizeof(sqlist));
cout<<"输入链表b的长度:"<<endl;
cin>>len;
lb->last=len-1;
cout<<"输入元素"<<endl;
for(i=0;i<len;i++)
cin>>lb->a[i];
lc=(sqlist *)malloc(sizeof(sqlist));
mergelist(la,lb,lc);
for(i=0;i<=lc->last;i++)
cout<<lc->a[i]<<" ";
cout<<endl;
return 0;
}
两个线性表的合并
最新推荐文章于 2021-10-13 16:32:43 发布