将线性表la和lb合并为lc【array_la+lb=lc】
#include <iostream.h>
#define MAXSIZE 50
//输入学生数据
#define MAXSIZE 50
//输入学生数据
int input(int s[MAXSIZE])
{
int i=0;
while(1)
{
cin>>s[i];
if(s[i]==-11111) {cout<<"输入完毕!退出输入过程!"<<endl;break;}
i++;
}
return(i);
}
{
int i=0;
while(1)
{
cin>>s[i];
if(s[i]==-11111) {cout<<"输入完毕!退出输入过程!"<<endl;break;}
i++;
}
return(i);
}
//排序
void sort(int s[MAXSIZE],int n)
{
int t;
for(int i=0;i<n;i++)
for(int j=i;j<n;j++)
if(s[i]>s[j]) { t=s[i]; s[i]=s[j]; s[j]=t;}
}
{
int t;
for(int i=0;i<n;i++)
for(int j=i;j<n;j++)
if(s[i]>s[j]) { t=s[i]; s[i]=s[j]; s[j]=t;}
}
//输出学生记录
void output(int s[MAXSIZE],int n)
{
int i;
cout<<"已合并后的数据:"<<endl;
cout<<"lc:"<<endl;
for(i=0;i<n;i++)
cout<<s[i]<<ends;
}
void output(int s[MAXSIZE],int n)
{
int i;
cout<<"已合并后的数据:"<<endl;
cout<<"lc:"<<endl;
for(i=0;i<n;i++)
cout<<s[i]<<ends;
}
int merge(int sa[MAXSIZE],int l_a,int sb[MAXSIZE],int l_b,int sc[MAXSIZE])
{
int i=0,j=0,k=0,m;
while( i<l_a&&j<l_b)
{ if(sa[i]<sb[j]) {sc[k]=sa[i];i++;k++;}
else if(sa[i]>sb[j]){sc[k]=sb[j];j++;k++;}
else {sc[k]=sa[i];i++;k++;j++;}
}
if(i<l_a) {for( m=i;m<l_a;m++) sc[k++]=sa[m]; }
if(j<l_b) {for( m=j;m<l_b;m++) sc[k++]=sb[m]; }
return(k);
}
{
int i=0,j=0,k=0,m;
while( i<l_a&&j<l_b)
{ if(sa[i]<sb[j]) {sc[k]=sa[i];i++;k++;}
else if(sa[i]>sb[j]){sc[k]=sb[j];j++;k++;}
else {sc[k]=sa[i];i++;k++;j++;}
}
if(i<l_a) {for( m=i;m<l_a;m++) sc[k++]=sa[m]; }
if(j<l_b) {for( m=j;m<l_b;m++) sc[k++]=sb[m]; }
return(k);
}
//主函数
void main()
{
int la[MAXSIZE],lb[MAXSIZE],lc[MAXSIZE*2];
cout<<"请输入la和lb线形表均以-11111表示结束输入"<<endl;
int length_la,length_lb,length_lc;
cout<<"la:";
length_la=input(la);
cout<<"lb:";
length_lb=input(lb);
//cout<<"学生人数:"<<length;
sort(la,length_la);
sort(lb,length_lb);
length_lc=merge(la,length_la,lb,length_lb,lc);
output(lc,length_lc);
}
void main()
{
int la[MAXSIZE],lb[MAXSIZE],lc[MAXSIZE*2];
cout<<"请输入la和lb线形表均以-11111表示结束输入"<<endl;
int length_la,length_lb,length_lc;
cout<<"la:";
length_la=input(la);
cout<<"lb:";
length_lb=input(lb);
//cout<<"学生人数:"<<length;
sort(la,length_la);
sort(lb,length_lb);
length_lc=merge(la,length_la,lb,length_lb,lc);
output(lc,length_lc);
}
转载于:https://blog.51cto.com/simeixiaofeng/182090