题目描述
实现顺序表的用C++语言和类实现顺序表
属性包括:数组、实际长度、最大长度(设定为1000)
操作包括:创建、插入、删除、查找
只能包含“iostream” 头文件
输入
第1行先输入n表示有n个数据,即n是实际长度;接着输入n个数据
第2行输入要插入的位置和新数据
第3行输入要插入的位置和新数据
第4行输入要删除的位置
第5行输入要删除的位置
第6行输入要查找的位置
第7行输入要查找的位置
输出
数据之间用空格隔开
第1行输出创建后的顺序表内容,包括顺序表实际长度和数据
每成功执行一次操作(插入或删除),输出执行后的顺序表内容
每成功执行一次查找,输出查找到的数据
如果执行操作失败(包括插入、删除、查找等失败),输出字符串error,不必输出顺序表内容
输入样例1
6 11 22 33 44 55 66
3 777
1 888
1
9
0
5
输出样例1
6 11 22 33 44 55 66
7 11 22 777 33 44 55 66
8 888 11 22 777 33 44 55 66
7 11 22 777 33 44 55 66
error
error
44
#include <iostream>
using namespace std;
class SqList
{
private:
int* array;
int len;
int size;
public:
SqList()
{
size = 1000;
len = 0;
array = new int[size];
}
~SqList()
{
delete[] array;
}
void Create()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> array[i];
len++;
}
Display();
}
void Display()
{
cout << len << " ";
for (int i = 0; i < len; i++)
cout << array[i] << " ";
cout << endl;
}
void Insert(int i, int e)
{
if (i<1 || i>len + 1)
{
cout << "error" << endl;
return;
}
for (int k = len - 1; k >= i - 1; k--)
{
array[k + 1] = array[k];
}
array[i - 1] = e;
len++;
Display();
}
void Delete(int i)
{
if (i<1 || i>len)
{
cout << "error" << endl;
return;
}
for (int k = i - 1; k <= len - 2; k++)
{
array[k] = array[k + 1];
}
len--;
Display();
}
void Find(int i)
{
if (i<1 || i>len)
{
cout << "error" << endl;
return;
}
cout << array[i - 1] << endl;
}
};
int main()
{
int i, e;
SqList s;
s.Create();
cin >> i >> e;
s.Insert(i, e);
cin >> i >> e;
s.Insert(i, e);
cin >> i;
s.Delete(i);
cin >> i;
s.Delete(i);
cin >> i;
s.Find(i);
cin >> i;
s.Find(i);
return 0;
}