#include<iostream>
using namespace std;
template < typename datatype > class seqlist
{
public:
seqlist(int size=defaultsize){
if(size>0)
{
maxsize=size;
length=0;
elements=new datatype[maxsize];
for(int i=0;i<maxsize;i++)
elements[i]=NULL;
}
}
~seqlist() {delete []elements;}
bool insertelement(datatype data);
datatype getelement(int location);
bool deleteelement(int location);
bool changeelement(int location,datatype newdata);
int getlength() {return length;}
private:
static const int defaultsize=10;
datatype *elements;
int maxsize;
int length;
};
template < typename datatype > bool seqlist <datatype>::insertelement (datatype data)
{
int currentindex=length;
if(length>=maxsize) return false;
else{
elements[currentindex]=data;
length++;
return true;
}
}
template < typename datatype > datatype seqlist<datatype>::getelement (int location)
{
if(location <0 || location >= length ) {cout<<"参数无效"<<endl;return 0;}
else return elements[location];
}
template<typename datatype> bool seqlist<datatype>::deleteelement(int location)
{
if(location <0 || location >= length ) return false;
else
{
for(int i=location;i<length;i++)
elements[i]=elements[i+1];
length--;
return true;
}
}
template<typename datatype> bool seqlist<datatype>::changeelement(int location,datatype newdata)
{
if(location<0 || location>=length) return false;
else
{
elements[location]=newdata;
return true;
}
}
int main()
{
seqlist<int> list(10);
for(int i=0;i<10;i++) list.insertelement(i*10);
for(int i=0;i<list.getlength();i++) cout<<list.getelement(i)<<" ";
cout<<endl;
list.deleteelement(3);
for(int i=0;i<list.getlength();i++) cout<<list.getelement(i)<<" ";
cout<<endl;
list.changeelement(5,44);
for(int i=0;i<list.getlength();i++) cout<<list.getelement(i)<<" ";
cout<<endl;
return 0;
}
一个简单的C++顺序表
最新推荐文章于 2024-05-14 22:04:37 发布