首页 > 代码库 > 顺序表类的定义
顺序表类的定义
/////////////////////////////////////顺序表类的定义// #include "SqList.h"//////////////////////////////////template<class T>class SqList{private: T* elem; //表首址 int length; //表长 int listsize; //表容量public: //构造函数,创建容量为m的空表 SqList(int m) { elem = new T[m]; //申请表空间 length = 0; //空表,表长为0 listsize = m; //表容量为m } //析构函数,删除表空间 ~SqList() { delete [] elem; //释放表空间 length = 0; listsize = 0; } //创建具有n个元素的线性表 void CreateList(int n) { if(n>listsize) throw"参数非法"; cout<<"请依次输入"<<n<<"个元素值:"<<endl; for(int i =1;i<=n;i++) cin>>elem[i-i]; length = n; } //在表中第i个位置插入元素 void Insert(int i,T e) { //在第i个位置插入元素,如果不能插入,显示异常信息 if(length>=listsize)throw"上溢"; if(i<1||i>length+1)throw"插入位置异常"; for(int j = length;j>=i;j--) elem[j] = elem[j-1]; elem[i-1] = e; length++; } //删除表中的第i个元素 T Delete(int i) { T x; if(length == 0)throw"下溢"; if(i<1||i>length+1)throw"删除位置异常"; x=elem[i-1]; for(int j=i;j<length;j++) elem[j-1] = elem[j]; length--; return x; } //获取第i个元素的值 T GetElem(int i) { T e; if(i<1||i>length)throw"位置不合法"; e = elem[i-1]; return e; } //元素定位 int Locate(T e) { for(int i = 0;i<length;i++) if(elemi[i] == e) return i+1; //找到,返回该元素在表中的位序 return 0; //未找到,返回0 } //清空表 void Clear() { length =0; } //测表是否空 int Empty() { if(length == 0)//判断表,若空,返回1. return 1; else //不空,返回0 return 0; } //测表是否满 int Full() { if(length == listsize) //表满,返回1 return 1; else //不满,返回0 return 0; } //返回表长 int Length() { return length; } //输出表元素 void ListDisp() { for(int i = 0;i<length;i++) { cout<<i+1<<"\t"; cout<<elem[i]<<endl; } }}
顺序表类的定义
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。