#include<iostream>
class List
{
public:
List(int size)
{
elem=new int[size];
if(!elem){
std::cout<<"内存溢出!";
}
cap=size;
l=0;
}
~List()
{
}
void creat_list();
void check_list(List L)
{
for (int i=0;i<l-1;++i)
{
std::cout<<L.elem[i]<<" ";
}
std::cout<<std::endl;
}
int insert_list(List &L,int i,int data)
{
if(i<1||i>cap+1) return 0;
if(l==cap)
{
int *p=new int[cap+10];
if(!p)
{
std::cout<<"内存溢出!";
}
for(int j=0;j<l;++j)
{
p[j]=L.elem[j];
delete []L.elem;
elem=p;
p=NULL;
cap+=10;
}
}
else
{
for(int j=l-1;j>=i-1;j--)
{
L.elem[j+1]=L.elem[j];
}
L.elem[i-1]=data;
l++;
}
return 0;
}
int delete_list(int i)
{
if(i<1||i>l) return 0;
int e=elem[i-1];
for (int j=i-1;j<l;++j)
{
elem[j]=elem[j+1];
}
--l;
return e;
}
private:
int* elem;
int cap;//线性表的容量
int l;//线性表长度;
};
int main()
{
List list(30);
for(int i=1;i<10;++i)
{
list.insert_list(list,i,i);
}
list.check_list(list);
list.insert_list(list,2,13);
list.check_list(list);
list.delete_list(3);
list.check_list(list);
}