#include<iostream>
using namespace std;
class SqlList
{
private:
int *elem;
int length;
int listsize;
public:
SqlList(int m);
SqlList();
~SqlList();
void CreateSqlList(int n);
int GetElem(int i);
void DispList();
void InsertElem(int i,int e);
int DeleteElem(int i);
bool IsExist(int w);
void Union(SqlList b);
void UnionSort(SqlList b);
};
SqlList::SqlList(int m)
{
elem = new int[m];
length = 0;
listsize = m;
}
SqlList::~SqlList()
{
delete[] elem;
}
void SqlList::CreateSqlList(int n)
{
if(n>listsize)
{
cout<<"error"<<endl;
return ;
}
else
{
int i;
for(i=0;i<n;i++)
{
cin>>elem[i];
}
}
length = n;
}
int SqlList::GetElem(int i)
{
if(i>length)
{
cout<<"error"<<endl;
return 0;
}
else
{
return elem[i-1];
}
}
void SqlList::DispList()
{
int i=0;
for(i;i<length;i++)
{
cout<<elem[i]<<" ";
}
cout<<endl;
}
void SqlList::InsertElem(int i,int e)
{
int m=length;
for(m;m>=i;m--)
{
elem[m] = elem[m-1];
}
elem[i-1] = e;
length++;
}
int SqlList::DeleteElem(int i)
{
int w = elem[i-1];
if(i<0 || i>length)
{
cout<<"error"<<endl;
return 0;
}
else
{
for (int j=i;j<length;j++)
{
elem[j-1] = elem[j];
}
}
length--;
return w;
}
bool SqlList::IsExist(int w)
{
for(int i=0;i<length;i++)
{
if(elem[i] == w)
return 1;
}
return 0;
}
void SqlList::Union(const SqlList b)
{
int w = length;
int b_length = b.length;
for(int i=0;i<b_length;i++)
{
if(!IsExist(b.elem[i]))
InsertElem(++w,b.elem[i]);
}
}
void SqlList::UnionSort(const SqlList b)
{
int b_length = b.length;
int i = 0,j = 0;
while(i<length && j<b_length)
{
if(elem[i] <b.elem[j])
{
i++;
}
else if(elem[i] > b.elem[j] )
{
InsertElem(i+1,b.elem[j]);
j++;
i++;
DispList();
}
else
{
i++;
j++;
}
}
while(j<b.length)
{
InsertElem(++i,b.elem[j]);
j++;
}
}
int main()
{
/*SqlList sql(10);
sql.CreateSqlList(5);
sql.DispList();
sql.InsertElem(3,4);
sql.DispList();
sql.DeleteElem(3);
sql.DispList();
SqlList sql2(10);
sql2.CreateSqlList(3);
sql.Union(sql2);
sql.DispList();*/
SqlList sql1(20);
sql1.CreateSqlList(5);
SqlList sql2(10);
sql2.CreateSqlList(5);
sql1.UnionSort(sql2);
sql1.DispList();
return 0;
}
线性表的顺序表示和操作
最新推荐文章于 2022-11-06 15:26:14 发布