#include<iostream>
#include<stdlib.h>
using namespace std;
const int maxn = 1010;
template<typename T>
class Sqlist//顺序表
{
public:
T*num;//储存元素
private:
int len;//记录长度
int maxsize;//记录当前顺序表中可存放的最大元素数
public:
void Init()
{
num=new T[maxn];
len=0;
maxsize=maxn;
}//初始化操作
void Destroy()
{
*num=NULL;
len=0;
}
void Clear()
{
num=NULL;
}
void Empty()
{
if(len==0)
return 1;
return 0;
}//判断顺序表是否为空
int Length()
{
return len;
}//返回顺序表的长度
T Find(int idx)
{
return num[idx];
}//x寻找第idx个元素,并返回他的值
void Insert(int idx,T n)
{
if(len>=maxsize)
{
// cout<<"========="<<endl;
num=(T*)realloc(num,(maxsize+maxn)*sizeof(T));
}
len++;
// cout<<len<<"================="<<endl;
// cout<<idx<< " "<<n<<endl;
// num[len-1]=num[len-2];
// cout<<num[len-1]<<endl;
for(int i=len-1;i>=idx;i--)
{
// cout<<num[i]<<"================";
num[i]=num[i-1];
}
num[idx-1]=n;
}//在第idx个位置插入值为T的元素·
void Delete(int idx)
{
for(int i=idx;i<len;i++)
num[i]=num[i+1];
len--;
return ;
}//删除第idx个元素
void Push_back(int n)
{
if(len>=maxsize)
{
num=(T*)realloc(num,(maxsize+maxn)*(sizeof(T)));
}
num[len++]=n;
return;
}//将新元素添加到顺序表中
T idxGet(int idx)
{
return num[idx];
}//获取第idx个元素
};
int main()
{
Sqlist<int> num;
num.Init();
for(int i=0;i<5;i++)
{
int n;
cin>>n;
num.Push_back(n);
// cout<<num.Length();
// cout<<num.idxGet(i)<<"========"<<endl;
}
num.Insert(2,3);
for(int i=0;i<num.Length();i++)
cout<<num.num[i]<<endl;
num.Delete(6);
for(int i=0;i<num.Length();i++)
cout<<num.num[i]<<"-----";
}