📄 3。1。2线性表.cpp
字号:
#include<iostream.h>
#include<3.1.2.h>
template<class T>
LinearList<T>::LinearList(int sz)
{
//按sz的大小申请一个表空间,生成一个空表,即表的初始化
if(sz>0)
{
MaxSize=sz;
Last=0;
//创建表空间
data=new T[MaxSize];
}
}
template<class T>
LinearList<T>::~LinearList(void)
{
//清除表,释放表空间,即撤消一个表
delete []data;
}
template<class T>
bool LinearList<T>::ListEmpty(void)
{
//判断表是否为空。空则返回TRUE;否则返回FALSE
return(Last<=0)?TRUE:FALSE;
}
template<class T>
bool LinearList<T>::ListFull(void)
{
//判断表是否已满。满则返回TRUE;否则返回FALSE
return(Last>=Maxsize)?TRUE:FALSE;
}
template<class T>
int LinearList<T>::ListLength(void)const
{
//求表中结点个数,即求表长
return Last;
}
template<class T>
T LinearList<T>::GetElem(int i)
{
//求表中的第i个结点的值
//若第i个结点存在,则返回该结点的值;否则返回NULL
return(i<0||i>=Last)?NULL:data[i];
}
template<class T>
int LinearList<T>::LocateElem(T&x)const
{
//查找表中值为x的结点。若查找成功,则返回该结点的序号;否则返回-1
//若表中值为x的结点有多个,找到的是最前面的一个
for(int i=0;i<LAST;i++)
if(data[i]==x) return i;
return -1;
}
template<class T>
bool LinearList<T>::InsertElem(T&x,int i)
{
//在表中第i个位置插入值为x的结点
//若插入成功,则返回TRUE;否则返回FALSE
//插入位置不合理,插入失败
if(i<0||i>Last||Last==MaxSize)
return FALSE;
else
{
//表长增1
Last++;
//后移
for(int j=Last-1;j>1;j--)data[j]=data[j-1];
//插入
data[i]=x;
return TRUE;
}
}
template<class T>
bool LinearList<T>::DeleteElem(int i)
{
//删除表中第i个结点。若删除成功,则返回TRUE;否则FALSE
//第i个结点不存在,删除失败
if(i<0||i>=Last||Last==0)
return FALSE;
else
{
//表长减1
Last--;
//前移
for(int j=i;j<Last-1;j++)data[j]=data[j+1];
return TURE;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -