合并两个顺序表主要是将两个数组存入一个新的顺序表中,并实现排序,删除重复元素等等基本操作。在时间复杂度上并没有特别去注意,只是以实现目的为主。
下面是代码执行部分:
#include<iostream>
using namespace std;
const int maxsize=10;
class seqlist
{
public:
seqlist() //初始化
{
length=0;
}
seqlist(int a[],int n) //构造
{
for(int i=0;i<n;i++)
data[i]=a[i];
length=n;
}
void he(int a[],int n,int b[],int s) //合并两个数组
{
for(int i=0;i<s;i++)
a[n+i]=b[i];
}
void pai() //排序
{
int t;
for(int j=0;j<length-1;j++)
for(int i=0;i<length-1-j;i++)
if(data[i]>data[i+1])
{
t=data[i];
data[i]=data[i+1];
data[i+1]=t;
}
}
void Delete() //删除相同元素
{
for(int i=0;i<length;i++)
for(int j=i+1;j<length;j++)
if(data[i]==data[j])
{
for(int s=j;s<length;s++)
{
data[s]=data[s+1];
}
i=0;length--;
}
}
void print() //输出
{
for(int i=0;i<length;i++)
cout<<data[i]<<" ";
}
private:
int length;
int data[maxsize];
};
int main()
{
int r[5]={1,6,9,4,5},s[3]={5,2,3};
seqlist l;l.he(r,5,s,3);
seqlist L(r,8);
try
{L.pai();
L.Delete();
}
catch(char*s)
{
cout<<s;
}
L.print();
}