数据结构上机实验线性表单链表源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include
template
class LinearList
{
public:
virtual bool IsEmpty()const=0;
virtual int Length()const=0;
virtual bool Find(int i,T& x)const=0;
virtual int Search(T x)const=0;
virtual bool Insert(int i,T x)=0;
virtual bool Update(int i,T x)=0;
virtual bool Delete(int i)=0;
virtual void Output(ostream& out)const=0;
protected:
int n;
};
#include "linearlist"
template
class SeqList:public LinearLisr
{
public:
SeqList(int mSize);
~SeqList(){delete [] elements;}
bool IsEmpty()const;
bool Find(int i,T& x)const;
int Length()const;
int Search(T x)const;
bool Insert(int i,T x);
bool Update(int i,T x);
bool Delete(int i);
void Output(ostream& out)const;
private:
int maxLength;
T *elements;
};
template
SeqList
{
maxLength=mSize;
elements=new T[maxLength];
n=0;
}
template
bool SeqList
{
return n==0;
}
template
int SeqList::Length()const
{
return 0;
}
template
bool SeqList
{
if(i<0||i>n-1)
{
cont<<"Out of Bounds"< return false; } x=elements[i]; return true; } template int SeqList { for(int j=0;j if(elements[j]==x) return -1; } template bool SeqList { if(i<-1||i>n-1) { cout<<"OUt of Bounds"< } if(n==maxLength){ cout<<"OverFlow"< return false; } for(int j=n-1;j>i;j--) elements[j+1]=elements[j]; elements[j+1]=x; n++;return true; } template bool SeqList::Delete(int i) { if(!n){ cout<<"UnderFlow"< return false; } if(i<0||i>n-1) { cout<<"OUt of Bounds"< } for(int j=i+1;j elements[j-1]=elements[j]; n--;return true; } template bool SeqList::Update(int i,T x) { if(i<0||i>n-1) { cout<<"OUt of Bounds"< } elements[i]=x; return true; } template bool SeqList::Output(ostream& out)const { for(int i=0;i out< }