C++与数据结构实验:顺序表的合并

#include<iostream>  
#include<bits/stdc++.h> 
using namespace std;  
typedef int element;  
#define maxsize 100  
typedef struct  
{  
  element aa[maxsize];  
  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->aa[i]<=lb->aa[j])  
      {  
        lc->aa[k]=la->aa[i];  
        i++;  
        k++;  
      }  
      else  
      {  
        lc->aa[k]=lb->aa[j];  
        j++;  
        k++;  
      }  
  }  
  while(i<=la->last)  
  {  
      lc->aa[k]=la->aa[i];  
      i++;  
      k++;  
  }  
  while(j<=lb->last)  
  {  
    lc->aa[k]=lb->aa[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->aa[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->aa[i];  
  lc=(sqlist*)malloc(sizeof(sqlist));  
  mergelist(la,lb,lc);  
  for(i=0;i<=lc->last;++i)  
      cout<<lc->aa[i]<<"  ";  
  cout<<endl;
  return 0;
  } 

猜你喜欢

转载自blog.csdn.net/qq_41515833/article/details/80585978