#include<iostream>
using namespace std;
typedef int Datatype;
class Seqlist
{
public:
friend ostream& operator<<(ostream& os,Seqlist& s);
using namespace std;
typedef int Datatype;
class Seqlist
{
public:
friend ostream& operator<<(ostream& os,Seqlist& s);
Seqlist(Datatype* pdata=NULL) //构造函数
:_sz(0),
_capacity(0)
{
_pdata=new int[_sz];
memcpy(_pdata,pdata,_sz*sizeof(Datatype));
_capacity=_sz;
:_sz(0),
_capacity(0)
{
_pdata=new int[_sz];
memcpy(_pdata,pdata,_sz*sizeof(Datatype));
_capacity=_sz;
}
Seqlist(const Seqlist& s) //拷贝构造函数
{
_pdata=new Datatype[s._capacity];
memcpy(_pdata,s._pdata,(s._sz*sizeof(Datatype)));
_sz=s._sz;
_capacity=s._capacity;
}
~Seqlist() //析构函数
{
if(_pdata!=NULL)
delete[] _pdata;
_sz=0;
_capacity=0;
}
void checkcapacity() //检查容量
{
while(_sz>=_capacity)
{
Datatype* tmp=new Datatype[_capacity+10];
memcpy(tmp,_pdata,_sz*sizeof(Datatype));
delete[] _pdata;
_pdata=tmp;
_capacity+=10;
}
}
void Pushback(Datatype n)
{
checkcapacity();
_pdata[_sz]=n;
_sz++;
}
void Pushfront(Datatype n)
{
int i=0;
Datatype tmp=_pdata[_sz-1];
checkcapacity();
for(i=_sz-1;i>=0;i--)
{
_pdata[i]=_pdata[i-1];
}
_pdata[0]=n;
_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--;
}
int Find(Datatype x)
{
int i=0;
for(i=0;i<_sz;i++)
{
if(_pdata[i]==x)
return 1;
else
return 0;
}
}
void Remove(Datatype 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;
}
private:Datatype* _pdata;
int _sz;
int _capacity;
};
ostream& operator<<(ostream& os,Seqlist& s)
{
int i=0;
for(i=0;i<s._sz;i++)
{
os<<s._pdata[i]<<" ";
}
cout<<endl;
return os;
}
ostream& operator<<(ostream& os,Seqlist& s)
{
int i=0;
for(i=0;i<s._sz;i++)
{
os<<s._pdata[i]<<" ";
}
cout<<endl;
return os;
}
void test1()
{
Seqlist list1;
for(int i=0;i<100;i++)
{
list1.Pushback(i);
}
cout<<list1<<endl;
}
void test2()
{
Seqlist list1;
for(int i=0;i<5;i++)
{
list1.Pushback(i);
}
list1.Pushfront(2);
cout<<list1<<endl;
}
void test3()
{
Seqlist list1;
for(int i=0;i<5;i++)
{
list1.Pushback(i);
}
list1.Popback();
cout<<list1<<endl;
}
void test4()
{
Seqlist list1;
for(int i=0;i<5;i++)
{
list1.Pushback(i);
}
list1.Popfront();
cout<<list1<<endl;
}
void test5()
{
int ret=0;
Seqlist list1;
for(int i=0;i<5;i++)
{
list1.Pushback(i);
}
ret=list1.Find(7);
if(ret==1)
cout<<"找到"<<endl;
else
cout<<"没找到"<<endl;
}void test6()
{
Seqlist list1;
for(int i=0;i<5;i++)
{
list1.Pushback(i);
}
list1.Remove(2);
cout<<list1<<endl;
void test5()
{
int ret=0;
Seqlist list1;
for(int i=0;i<5;i++)
{
list1.Pushback(i);
}
ret=list1.Find(7);
if(ret==1)
cout<<"找到"<<endl;
else
cout<<"没找到"<<endl;
}void test6()
{
Seqlist list1;
for(int i=0;i<5;i++)
{
list1.Pushback(i);
}
list1.Remove(2);
cout<<list1<<endl;
}
int main()
{
test2();
getchar();
return 0;
}
int main()
{
test2();
getchar();
return 0;
}