顺序表的定义与实现

template <class elemtype>
class seqlist:public list<elemtype>
{ private :  elemtype *data;int maxsize;
             int currentlength;
                void doublepace();

public:

          seqlist(int initsize=10};
    ~seqlist( )   {   delete []data;}

void clear () {currentlength =0;}

void insert (int i,elemtype&x);

   void remove(int i);

    void search (const elemtype &x);

elemtype visit(int i) {return data[i]};
void traverse()const;

template <class elemtype>
void seqlist<elemtype >::doublespace()

{elemtype *tmp=data;
maxsize*=2;
data=new elemtype [maxsize];
for (int i=0,i<currentlength;i++)
data [i]=tmp[i];
delete []tmp;

}

template <class elemtype>
seqlist<elemtype>::seqlist(int initsize)

{
    data=new elemtype [initsize];

maxsize=initsize;

currentlength=0;}

template <class elemtype>
void seqlist<elemtype>::insert(int i,cosnt elemtype&x)
{ if (currentlength=maxsize)  doublespace();
 for(int j=currentlength;j>i;j--)data[j]=data[j-1];data[i]=x;++currentlength;}

template <class elemtype>
void seqlist<elemtype>::remove(int i)
{  for (int j=i;j<currentlength-1;j++;)data[j]=data[j+1];
--currentlength;}
template <class elemtype>
void seqlist<list>::search(elemtype&x)

{
    for(int i=0;i<currentlength;i++)
{if (data[i]==x)  return i;

else return -1;}

template <class elemtype>
void seqlist <elemtype> ::traverse()
{cout <<endl;

for (int i=0,i<currentlength;i++)cout<<data[i]<<";}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值