实验三顺序表

xiaoxiao2021-02-28  37

#include<iostream.h> const int Maxsize=15; class ScoreList { public: void Insert(int i,int x); int Delete(int i); int Search(int x); void Print(); ScoreList(){length=0;} ScoreList(int a[],int n); ~ScoreList(){} private: int data[Maxsize]; int length; }; ScoreList::ScoreList(int a[],int n) { if(n>Maxsize)throw"参数非法"; for(int i=0;i<n;i++) data[i]=a[i]; length=n; } void ScoreList::Insert(int i,int 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++; } int ScoreList::Delete(int i) { if(length==0)throw"下溢"; if(i<1||i>length)throw"位置非法"; int x=data[i-1]; for(int j=i;j<length;j++) data[j-1]=data[j]; length--; return x; } int ScoreList::Search(int x) { for(int i=0;i<length;i++) if(data[i]==x) return i+1; } void ScoreList::Print() { for(int i=0;i<length;i++) cout<<"成绩:"<<data[i]<<" "<<endl;} int main() { int b[5]={11,22,33,44,55}; ScoreList S(b,5); cout<<"插入前数据为"<<endl; S.Print(); cout<<"在第3个位置插入成绩为66的元素"<<endl; S.Insert(3,66); cout<<"现数据为"<<endl; S.Print(); cout<<"删除第2个成绩"<<endl; S.Delete(2); cout<<"现数据为"<<endl; S.Print(); cout<<"查找成绩为55的位置"<<endl; cout<<S.Search(55)<<endl;

return 0;}

转载请注明原文地址: https://www.6miu.com/read-2626299.html

最新回复(0)