标签:style blog color ar for sp div c log
/////////////////////////////////// //顺序表类的定义 // #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; } } }
标签:style blog color ar for sp div c log
原文地址:http://www.cnblogs.com/Davis812/p/4002145.html