#include<iostream>
using namespace std;
template<typename T>
class SeqList
{
public:
SeqList()
:_pdata(NULL),
_sz(0),
_capacity(3)
{
_pdata=new T[_capacity];
}
~SeqList()
{
if(_pdata!=NULL)
{
delete[] _pdata;
}
_sz=0;
_capacity=0;
}
SeqList(const T& s)
{
int i=0;
_pdata=new T[s._capacity];
for(i=0;i<_sz;i++)
{
_pdata[i]=s._pdata[i];
}
_sz=s._sz;
_capacity=s._capacity;
}
void checkcapacity()
{
while(_sz>=_capacity)
{
int i=0;
T* tmp=new T[_capacity+10];
for(i=0;i<_sz;i++)
{
tmp[i]=_pdata[i];
}
delete[] _pdata;
_pdata=tmp;
_capacity+=10;
}
}
void PushBack(const T& d)
{
checkcapacity();
_pdata[_sz]=d;
_sz++;
}
void PushFront(const T& d)
{
int i=0;
T tmp=_pdata[_sz-1];
checkcapacity();
for(i=_sz-1;i>=0;i--)
{
_pdata[i]=_pdata[i-1];
}
_pdata[0]=d;
_pdata[_sz]=tmp;
_sz++;
}
void Popback()
{
_pdata[_sz]=0;
_sz--;
}
void Popfront()
{
int i=0;
for(i=0;i<_sz-1;i++)
{
_pdata[i]=_pdata[i+1];
}
_sz--;
}
void Remove(const T& pos)
{
int i=0;
_pdata[pos]=0;
for(i=pos;i<_sz;i++)
{
_pdata[i]=_pdata[i+1];
}
_sz--;
}
void RemoveAll()
{
delete[] _pdata;
_sz=0;
_capacity=0;
}
void Sort()
{
int i=0;
int j=0;
T tmp;
for(i=0;i<_sz-1;i++)
{
for(j=0;j<_sz-1-i;j++)
{
if(_pdata[j]>_pdata[j+1])
{
tmp=_pdata[j];
_pdata[j]=_pdata[j+1];
_pdata[j+1]=tmp;
}
}
}
}
void Insert(int pos,const T& d)
{
if(pos<0 || pos>_sz)
{
cout<<"无法插入!"<<endl;
exit(-1);
}
else
{
checkcapacity();
for(int i=_sz;i>pos;i--)
{
_pdata[i]=_pdata[i-1];
}
_pdata[pos]=d;
_sz++;
}
}
void Reserve(int pos)
{
int i=0;
for(i=pos;i<_sz;i++)
{
_pdata[i]=_pdata[i+1];
}
_sz--;
}
void Display()
{
int i=0;
for(i=0;i<_sz;i++)
{
cout<<_pdata[i]<<" ";
}
cout<<endl;
}
private:
T* _pdata;
int _sz;
int _capacity;
};
void test1()
{
SeqList<int> l1;
l1.PushBack(1);
l1.PushBack(2);
l1.PushBack(3);
l1.PushBack(4);
l1.PushBack(5);
l1.Display();
using namespace std;
template<typename T>
class SeqList
{
public:
SeqList()
:_pdata(NULL),
_sz(0),
_capacity(3)
{
_pdata=new T[_capacity];
}
~SeqList()
{
if(_pdata!=NULL)
{
delete[] _pdata;
}
_sz=0;
_capacity=0;
}
SeqList(const T& s)
{
int i=0;
_pdata=new T[s._capacity];
for(i=0;i<_sz;i++)
{
_pdata[i]=s._pdata[i];
}
_sz=s._sz;
_capacity=s._capacity;
}
void checkcapacity()
{
while(_sz>=_capacity)
{
int i=0;
T* tmp=new T[_capacity+10];
for(i=0;i<_sz;i++)
{
tmp[i]=_pdata[i];
}
delete[] _pdata;
_pdata=tmp;
_capacity+=10;
}
}
void PushBack(const T& d)
{
checkcapacity();
_pdata[_sz]=d;
_sz++;
}
void PushFront(const T& d)
{
int i=0;
T tmp=_pdata[_sz-1];
checkcapacity();
for(i=_sz-1;i>=0;i--)
{
_pdata[i]=_pdata[i-1];
}
_pdata[0]=d;
_pdata[_sz]=tmp;
_sz++;
}
void Popback()
{
_pdata[_sz]=0;
_sz--;
}
void Popfront()
{
int i=0;
for(i=0;i<_sz-1;i++)
{
_pdata[i]=_pdata[i+1];
}
_sz--;
}
void Remove(const T& pos)
{
int i=0;
_pdata[pos]=0;
for(i=pos;i<_sz;i++)
{
_pdata[i]=_pdata[i+1];
}
_sz--;
}
void RemoveAll()
{
delete[] _pdata;
_sz=0;
_capacity=0;
}
void Sort()
{
int i=0;
int j=0;
T tmp;
for(i=0;i<_sz-1;i++)
{
for(j=0;j<_sz-1-i;j++)
{
if(_pdata[j]>_pdata[j+1])
{
tmp=_pdata[j];
_pdata[j]=_pdata[j+1];
_pdata[j+1]=tmp;
}
}
}
}
void Insert(int pos,const T& d)
{
if(pos<0 || pos>_sz)
{
cout<<"无法插入!"<<endl;
exit(-1);
}
else
{
checkcapacity();
for(int i=_sz;i>pos;i--)
{
_pdata[i]=_pdata[i-1];
}
_pdata[pos]=d;
_sz++;
}
}
void Reserve(int pos)
{
int i=0;
for(i=pos;i<_sz;i++)
{
_pdata[i]=_pdata[i+1];
}
_sz--;
}
void Display()
{
int i=0;
for(i=0;i<_sz;i++)
{
cout<<_pdata[i]<<" ";
}
cout<<endl;
}
private:
T* _pdata;
int _sz;
int _capacity;
};
void test1()
{
SeqList<int> l1;
l1.PushBack(1);
l1.PushBack(2);
l1.PushBack(3);
l1.PushBack(4);
l1.PushBack(5);
l1.Display();
}
void test2()
{
SeqList<int> l1;
l1.PushBack(1);
l1.PushBack(2);
l1.PushBack(3);
l1.PushFront(6);
l1.Display();
}
void test3()
{
SeqList<int> l1;
l1.PushBack(1);
l1.PushBack(2);
l1.PushBack(3);
l1.Popfront();
l1.Display();
}
void test4()
{
SeqList<int> l1;
l1.PushBack(1);
l1.PushBack(3);
l1.PushBack(4);
l1.PushBack(5);
l1.PushBack(6);
l1.Insert(1,1);
l1.Display();
void test2()
{
SeqList<int> l1;
l1.PushBack(1);
l1.PushBack(2);
l1.PushBack(3);
l1.PushFront(6);
l1.Display();
}
void test3()
{
SeqList<int> l1;
l1.PushBack(1);
l1.PushBack(2);
l1.PushBack(3);
l1.Popfront();
l1.Display();
}
void test4()
{
SeqList<int> l1;
l1.PushBack(1);
l1.PushBack(3);
l1.PushBack(4);
l1.PushBack(5);
l1.PushBack(6);
l1.Insert(1,1);
l1.Display();
}void test5()
{
SeqList<int> l1;
l1.PushBack(1);
l1.PushBack(2);
l1.PushBack(3);
l1.Reserve(1);
l1.Display();
{
SeqList<int> l1;
l1.PushBack(1);
l1.PushBack(2);
l1.PushBack(3);
l1.Reserve(1);
l1.Display();
}
void test6()
{
SeqList<int> l1;
l1.PushBack(1);
l1.PushBack(2);
l1.PushBack(3);
l1.PushBack(0);
l1.Sort();
l1.Display();
void test6()
{
SeqList<int> l1;
l1.PushBack(1);
l1.PushBack(2);
l1.PushBack(3);
l1.PushBack(0);
l1.Sort();
l1.Display();
}
int main()
{
test6();
getchar();
return 0;
}
int main()
{
test6();
getchar();
return 0;
}