const int MAX_LIST_SIZE=1000;//顺序表最大元素个数
template<class ElemType>
class SqList
{
protected:
//顺序表实现的成员
int count;//元素个数
ElemType elem[MAX_LIST_SIZE];//元素存储空间
//辅助函数
bool Full() const;//判断线性表是否已满
void Init();//初始化线性表
public:
//抽象数据类型方法及重载编译系统默认方法声明
SqList();//无参数的构造函数
~SqList(){};
//析构函数
int Length() const;//求线性表长度
bool Empty() const;//判断线性表是否为空
void Clear();//将线性表清空
void Traverse(void (*Visit)(ElemType &));//遍历线性表
Status_code GetElem(int position,ElemType &e) const;//求指定位置的元素
Status_code SetElem(int position,const ElemType &e);//设定指定位置的元素值
Status_code Delte(int position,ElemType &e);//删除元素
Status_code Insert(int position,const ElemType&e);//插入元素
SqList(const SqList<ElemType>©);//复制构造函数
SqList<ElemType>&operator=(const SqList<ElemType>©);//赋值语句重载
}
template<class ElemType>
bool SqList<ElemType>::Full()const
{//操作结果:如果线性表已满,则返回true,否则返回false
return count==MAX_LIST_SIZE;
}
template <class ElemType>
void SqList<ElemTpye>::Init()
{//初始化线性表
count=0;
}
template<class ElemType>
SqList<ElemType>::SqList()
{//操作结果:构造一个空线性表
Init();
}
template<class ElemType>
int SqList<Elemplate>::Length()
{//返回线性表元素个数
return count;
}
template<class Elemplate>
bool SqList<Elemplate>::Empty()const
{//如果线性表为空返回true,否则返回false
return count==0;
}
template<class ElemType>
void SqList<ElemType>::Clear()
{//清空线性表
count=0;
}
template<class ElemType>
void SqList<ElemType>::Traverse(void(*visit)ElemType&)
{//依次对线性表每个元素调用函数*visit
for(int curPosition=1;curPosition<=Length();curPosition++)
{//对线性表的每个元素调用*visit函数
(*visit)(elem[curPosition]-1);
}
}
template<class ElemType>
Status_code SqList<ElemType>::GetElem(int position,ElemType&e)const
{//当线性表的第position个元素存在的时候用e返回其值,函数返回elem_FOUND,否则函数返回NOT_FOUND
if(position<0||position>Length())
{//position范围错误
return NOT_PRESENT;
}
else
{//position合法
e=elem [position-1];
return ENTRY_FOUND;//元素存在
}
}
template<class ElemType>
Status_code SqList<ElemType>::SetElem(int position,const Elemtype &e)
{//将线性表第position位置的元素赋值为e
if(position<0||position>Length()
{//position范围错误
return RANGE_ERROR;
}
else
{//position范围合法
elem[position]-1=e;
}
}
void main()
{
}