#include<iostream>
using namespace std;
const int Max=50;
typedef struct
{
int a[Max];
int length;
}sqlist;
void creat(sqlist &L,int n);
void printlist(sqlist &L);
void hebing(sqlist &L1,sqlist &L2);
int main()
{
sqlist list1;
sqlist list2;
cout<<"你想开辟几个节点"<<endl;
int n;
cin>>n;
creat(list1,n);
printlist(list1);
cout<<"你想开辟几个节点"<<endl;
cin>>n;
creat(list2,n);
printlist(list2);
hebing(list1,list2);
cout<<"合并后的是"<<endl;
printlist(list2);
}
void creat(sqlist &L,int n)
{
int i=0;
cin>>L.a[i];
for(i=1;i<=n-1;i++)
{
cin>>L.a[i];
}
L.length=i;
}
void printlist(sqlist &L)
{
if(L.length==0)
{
return ;
}
else
{
int i;
for(i=0;i<=L.length-1;i++)
{
cout<<L.a[i]<<" ";
}
cout<<endl;
}
}
void hebing(sqlist &L1,sqlist &L2)
{
int i=0,j=0,k;
while(i<=L1.length-1)
{
if(L1.a[i]>L2.a[L2.length-1])
{
L2.a[L2.length]=L1.a[i];
i++;
L2.length++;
}
else
{
while(L1.a[i]>L2.a[j])
{
j++;
}
for(k=L2.length-1;k>=j;k--)
{
L2.a[k+1]=L2.a[k];
}
L2.a[j]=L1.a[i];
i++;
L2.length++;
}
}
}
两个顺序表都为升序,将L1,并入到L2中
最新推荐文章于 2022-10-05 10:49:50 发布