求大神补充一下逆置操作,顺便将注释补上。
求问此处return -1;是什么意思?
顺序表上的基本操作实现
时 限: 1000 ms
内存限制: 10000 K
总时限: 3000 ms
描述: 在顺序存储结构实现基本操作:初始化、创建、插入、删除、查找、遍历、逆置、合并运算。
输入: 请输入线性表La的长度:n
a1 a2 a3 ...an(数值有序,为降序)
请输入要插入到线性表La中的数字x和插入的位置i:x i
请输入要删除数字的位置:i
请输入要查找的数字:x
请输入线性表长度:m
b1 b2...bm(数值有序,为升序)
输出: 创建好的线性表La=a1 a2...an
插入一个数字后的线性表a1 a2...an+1
删除一个数字后的线性表a1 a2...an
查找一个输入的数字后如果找到,输出该数字的位置i,如果没有找到,输出"Not found"的信息。
逆置a1 a2...an后的线性表an an-1...a1
合并两个线性表后的线性表
输入样例: 5
14 11 10 9 5
8 4
4
10
4
1 3 6 9
输出样例: 14 11 10 8 9 5
14 11 10 9 5
3
5 9 10 11 14
1 3 5 6 9 9 10 11 14
代码如下:
#include
#include
#include
using namespace std;
class SeqList
{
protected:
int data[1000];
int Size;
public:
SeqList *last;
SeqList()
{
Size=100;
last=NULL;
}
void Input(int n);
void Insert(int x,int i);
void Remove(int i);
int Search(int x);
void Ergodic()
{
sort(data,data+Size);
}
void Union(SeqList &seqlist);
void output();
};
void SeqList::Input(int n)
{
Size=n;
for(int i=0;i
{
cin>>data[i];
}
}
void SeqList::Insert(int x,int i)
{
for(int j=Size-1;j>=i-1;j--)
{
data[j+1]=data[j];
}
data[i-1]=x;
Size++;
}
void SeqList::Remove(int i)
{
for(int j=i-1; j
{
data[j]=data[j+1];
}
Size--;
}
int SeqList::Search(int x)
{
for(int i=0; i
{
if(data[i]==x)
return i+1;
}
return -1;
}
void SeqList::Union(SeqList &seqlist)
{
for(int i=Size; i
{
data[i]=seqlist.data[i-Size];
}
sort(data,data+Size+seqlist.Size);
Size+=seqlist.Size;
}
void SeqList::output()
{
for(int i=0; i
{
cout
}
cout
}
int main()
{
SeqList s1,s2;
int n;
cin>>n;
s1.Input(n);
int x,i;
cin>>x>>i;
s1.Insert(x,i);
s1.output();
int a;
cin>>a;
s1.Remove(a);
s1.output();
int y;
cin>>y;
int b=s1.Search(y);
if(b==-1)
cout<<"Not found"<
else cout
s1.Ergodic();
s1.output();
int m;
cin>>m;
s2.Input(m);
s1.Union(s2);
s1.output();
return 0;
}