#include "iostream"
using namespace std;
const int maxsize = 20;
template <class Numtype>
class Numlist
{
public:
Numtype Bulid(); //建立顺序表
void Insert(); //插入
Numtype Delete(); //删除
Numtype Get(); //顺序查找
private:
Numtype data[maxsize];
int length;
};
template <class Numtype>
Numtype Numlist <Numtype>::Bulid() //建立顺序表
{
int i;
Numtype a[10];
int n;
cin >> n;
if (n > maxsize) throw"参数非法";
for (i = 0; i < n; i++)
cin >> a[i];
data[i] = a[i];
length = n;
}
template <class Numtype>
Numtype Numlist<Numtype>::Get() //顺序查找
{
int i;
cin >> i;
if (i<1 && i>length) throw "查找位置非法";
else return data[i - 1];
}
template <class Numtype>
void Numlist<Numtype>::Insert() //插入
{
int i;
int j;
Numtype x;
cin >> i >> x;
if (length >= maxsize) throw"上溢";
if (i<1 || i>length + 1) throw "位置";
for (j = length; j >= i; j--)
data[j] = data[j - 1];
data[i - 1] = x;
length++;
}
template <class Numtype>
Numtype Numlist<Numtype>::Delete() //删除
{
int i,x,j;
cin >> i;
if (length == 0) throw"下溢";
if (i = 1 || i > length) throw"位置";
x = data[i - 1];
for (j = i; j < length; j++)
data[j - 1] = data[j];
length--;
return x;
}
int main()
{
Numlist <int> stu;
stu.Bulid(); //建立顺序表
stu.Insert(); //插入
stu.Delete(); //删除
stu.Get(); //顺序查找
return 0;
}