数据结构(C++版)
一、顺序表
①两个文件的,其中对main.cpp进行编译运行。
文件名:SeqList.h
代码:
const int MaxSize=100; templateclass SeqList{ public: SeqList(); SeqList(DataType a[],int n); //~SeqList(); int Length(); DataType Get(int i); int Locate(DataType x); void Insert(int i ,DataType x); DataType Delete(int i); int Empty(); void PrintList(); private: DataType data[MaxSize]; int length; }; template SeqList ::SeqList(DataType a[],int n){ if(n>MaxSize) throw "参数非法"; for(int i = 0;i void SeqList ::PrintList(){ for(int i=0;i DataType SeqList ::Get(int i){ if(i<1||i>length) throw "查找位置非法"; else return data[i-1]; } template int SeqList ::Locate(DataType x){ for(int i =0;i void SeqList ::Insert(int i,DataType x){ if(length==MaxSize) throw "上溢"; if(i<1||i>length+1) throw "插入位置错误"; for(int j=length;j>=i;j--) data[j]=data[j-1]; data[i-1]=x; length++; } template int SeqList ::Length(){ return length; } template DataType SeqList ::Delete(int i){ DataType x; if(length==0) throw "下溢"; if(i<1||i>length) throw "删除位置错误"; x = data[i-1]; for(int j =i;j 文件名:main.cpp
代码:#include#include "SeqList.h" using namespace std; int main(){ int r[5]={1,2,3,4,5},i,x; SeqList L(r,5); cout<<"当前线性表的数据为:"; L.PrintList(); try{ L.Insert(2,8); cout<<"执行插入操作后数据为:"; L.PrintList(); }catch(char *str){ cout< >x; i=L.Locate(x); if(0==i) cout<<"查找失败"< >i; cout<<"第"<>i; x=L.Delete(i); cout<<"删除的元素是"< ②代码都在一个文件内
文件名:main.cpp
代码:#includeusing namespace std; const int MaxSize=100; template class SeqList{ public: SeqList(); SeqList(DataType a[],int n); //~SeqList(); int Length(); DataType Get(int i); int Locate(DataType x); void Insert(int i ,DataType x); DataType Delete(int i); int Empty(); void PrintList(); private: DataType data[MaxSize]; int length; }; template SeqList ::SeqList(DataType a[],int n){ if(n>MaxSize) throw "参数非法"; for(int i = 0;i void SeqList ::PrintList(){ for(int i=0;i DataType SeqList ::Get(int i){ if(i<1||i>length) throw "查找位置非法"; else return data[i-1]; } template int SeqList ::Locate(DataType x){ for(int i =0;i void SeqList ::Insert(int i,DataType x){ if(length==MaxSize) throw "上溢"; if(i<1||i>length+1) throw "插入位置错误"; for(int j=length;j>=i;j--) data[j]=data[j-1]; data[i-1]=x; length++; } template int SeqList ::Length(){ return length; } template DataType SeqList ::Delete(int i){ DataType x; if(length==0) throw "下溢"; if(i<1||i>length) throw "删除位置错误"; x = data[i-1]; for(int j =i;j L(r,5); cout<<"当前线性表的数据为:"; L.PrintList(); try{ L.Insert(2,8); cout<<"执行插入操作后数据为:"; L.PrintList(); }catch(char *str){ cout< >x; i=L.Locate(x); if(0==i) cout<<"查找失败"< >i; cout<<"第"<>i; x=L.Delete(i); cout<<"删除的元素是"<



