📄 seqlisttpl.cpp
字号:
#include "SeqListTpl.h"
template <typename T,int size> int seqlist<T,size>::Find(T & x)const
{
int i=0;
while(i<=last && slist[i]!=x) //顺序查找是否有x
i++;
if (i>last) return -1; //未找到,返回-1
else return i; //找到,返回下标
}
template <typename T,int size> bool seqlist<T,size>::IsIn(T & x)
{
int i=0;
bool found=0;
while(i<=last && !found) //换了一种方法来查找
if (slist[i]!=x) i++;
else found=1; //找到
return found;
}
template <typename T,int size> bool seqlist<T,size>::Insert(T & x, int i)
{
if (i<0||i>last+1||last==Maxsize -1) return false;//插入位置不合理,不能插入(健壮性)
else{
last++;
for(int j=last;j>i;j--) slist[j]=slist[j-1];//从表最后位置向前依次后移,空出指定位置来
slist[i]=x;
return true;
}
}
template <typename T,int size> bool seqlist<T,size>::Remove(T & x)
{
int i=Find(x);//先去找x在哪个位置
if(i>=0){
last--;
for(int j=i;j<=last;j++) slist[j]=slist[j+1];//依次前移,保证表连续
return true;
}
return false;//表中不存在x
}
template <typename T,int size> int seqlist<T,size>::Next(T & x)
{
int i=Find(x);
if(i>=0 && i<last) return i+1;//x后继位置
else return -1;//x不在表中,或在表末尾
}
template <typename T,int size> int seqlist<T,size>::Prior(T & x)
{
int i=Find(x);
if(i>0 && i<=last) return i-1;//x前驱的位置
else return -1;
}
template <typename T,int size> void seqlist<T,size>::ShowSeqlist()
{
int i=0;
while(i<=last ) //顺序查找是否有x
slist[i].Show();
if (i>last) return -1; //未找到,返回-1
else return i; //找到,返回下标
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -