用c++模板实现|用c++模板实现 线性表(数组表示)


用c++模板实现|用c++模板实现 线性表(数组表示)
文章图片
用c++模板实现|用c++模板实现 线性表(数组表示)
文章图片
Code
#include
#include
using namespace std;

template class LinearList{
public:
LinearList();
LinearList(int num);
T * insert(int index,T value);
T delVal(int index);
int GetLength(){return length; }
bool isEmpty(){return length==0; }
bool isElem(T value,int &index)
{
for (int i=0; i{
if(vec[i]==value)
{
index=i;
return true;
}
}
return false;

}

T & GetElem(int index)
{
return vec[index];
}
private:
int length;
int capicity;
T *vec;


};

template LinearList::LinearList()
{
capicity=100;
length=0;
vec=new T[capicity];

}

template LinearList::LinearList(int num)
{
if(num<0)
exit(OVERFLOW);
capicity=num;
length=0;
vec=new T[capicity];

}

template T * LinearList::insert(int index, T value)
{
if(index<0||index>length)
cout<<"overflow"<if(length>=capicity)
{
T *newVec=new T[capicity*2];
for (int i=0; i{
newVec[i]=vec[i];
}
delete [] vec;
vec=newVec;
capicity*=2;

}


T *beg=&vec[index];
for (T *end=&vec[length-1]; end>=beg; --end)
{
*(end+1)=*end;

}
*beg=value;
++length;
return beg;
}

template T LinearList::delVal(int index)
{
if (index<0||index>length)
{
cout<<"overflow"<}
T *temp=&vec[index];
T ret=*temp;
for(T *end=&vec[length-1]; temp<=end; ++temp)
*temp=*(temp+1);
--length;
return ret;


} 【用c++模板实现|用c++模板实现 线性表(数组表示)】转载于:https://www.cnblogs.com/zwicker/archive/2009/03/06/1404669.html

    推荐阅读