template <class T>
class SqList
{
public:
SqList(int Max);
~SqList()
{
delete[] Data;
}
int Locate(const T&x) const; //返回数组中元素x的位置
int Insert(int k,const T&x);//在数组中k处插入元素x
int Delete(int k,T&x);//从数组中删除k处的元素x
private:
int n; //数组当前现存元素个数
int MaxSize; //数组最大元素个数
int last;//数组最后一个元素的下标
T *Data;
};
#include "SqList.h"
template <class T>
SqList<T>::SqList(int Max)
{
MaxSize=Max;
T Data=new T[MaxSize];//数组的类型为T
last=-1; //last用于指向数组的最后一个元素,初始化为-1
}
//寻找元素x的位置
template<class T>
int SqList<T>::Locate(const T&x) const //T 代表数组中元素的类型
{
//返回表中元素x的位置
int i=0;
while (i<=last&&x!=Data[i])
{
i++;
}
if (i>last)
{
return -1;
}
else
{
return i;
}
}
//插入元素
template<class T>
int SqList<T>::Insert(int k,const T&x)
{
//在表的位置k处插入元素x
if ((k<0||k>last+1)||last==MaxSize-1) //last==MaxSize-1 判断最后一个元素的下标是否有超过最大元素,MaxSize-1因为下标是从0开始的 (在顺序插入之前必须判断表有没有满)
{
return 0;
}
else
{
last++;
for(int i=last;i>k;i--)
{
Data[i]=Data[i-1];
}
Data[k]=x;
return 1;
}
}
template<class T>
int SqList<T>::Delete(int k,T&x)
{
if (k<0||k>last)
{
return 0;
}
else
{
last--;
for (int i=k;i>last;i++)
{
Data[i]=Data[i+1];
}
return 1;
{
}
}
}
int main()
{
}
562

被折叠的 条评论
为什么被折叠?



