线性表综合实验之顺序表
2017-10-13 21:43
225 查看
#include<iostream> using namespace std; const int Max=100; template<class T> class Seqlist { private: T data[Max]; int length; public: Seqlist(){length=0;} void Setlist(T a[],int n); ~Seqlist(){} int Length(); T Number_get(int i); int Location_get(T x); void Insert(int i,T x); T Delete(int i); void Printlist(); }; template<class T> void Seqlist<T>::Setlist(T a[],int n) { int i; for(i=0;i<n;i++) data[i]=a[i]; length=n; if(n>Max) throw"错误"; } template<class T> int Seqlist<T>::Length() {return length;} template<class T> T Seqlist<T>::Number_get(int i) { if(i<1&&i>length)throw "位置错误!"; else return data[i-1]; } template<class T> int Seqlist<T>::Location_get(T x) { int i; for(i=0;i<length;i++) if(data[i]==x) return i+1; return 0; } template<class T> void Seqlist<T>::Insert(int i,T x) { if(length>=Max)throw "上溢"; if(i<1||i>length)throw "位置错误"; for(int j=length;j>=i;j--) data[j]=data[j-1]; data[i-1]=x; length++; } template<class T> T Seqlist<T>::Delete(int i) { if(length==0)throw "下溢"; if(i<1||i>length)throw "位置错误"; for(int j=i;j<length;j++) data[j-1]=data[j]; length--; return data[i-1]; } template<class T> void Seqlist<T>::Printlist() { int i; for(i=0;i<length;i++) cout<<data[i]<<" "; cout<<endl; } int main() { Seqlist<int> student; int stu[10]={90,87,95,77,80,91,74,89,92,97}; student.Setlist(stu,10); cout<<"表的长度为:"<<student.Length()<<endl; cout<<"学生成绩如下:"<<endl; student.Printlist(); student.Number_get(3); cout<<"第三位学生的成绩为:"<<student.Number_get(3)<<endl; cout<<"成绩为90的学生序号为:"<<student.Location_get(90)<<endl; cout<<"在序号为1的学生后面插进新成绩80:"<<endl; student.Insert(1,80); student.Printlist(); cout<<"删除序号为2的学生的成绩:"<<endl; student.Delete(2); student.Printlist(); return 0; }
一、实验目的
巩固线性表的数据结构的存储方法和相关操作,学会针对具体应用,使用线性表的相关知识来解决具体问题。二、.实验内容
1、建立一个由n个学生成绩的顺序表,n的大小由自己确定,每一个学生的成绩信息由自己确定,实现数据的对表进行插入、删除、查找等操作。分别输出结果。2、用顺序表实现。
三、实验结果截图
四、实验心得
由于对顺序表的操作在实验一中有一定的练习与操作,所以做起来比较有思路。但是在本次实验中涉及得失学生成绩信息的管理,我一开始想到的是包含学生姓名、学号、科目、成绩等信息,但是这样类似于做一个学生信息管理系统,比较复杂,依照自己的能力还不能很好地实现,于是思考过后只是选择做出了单纯地以学生序号来录入学生的某一科成绩。该顺序表所实现的功能也许并没有多大的实际意义,但是作为让自己练习并熟悉顺序表的相关操作还是很有帮助的,至少在这次的练习中我又发现了自己的一些不足,比如对顺序表的创建与相关操作实现其实都是一个道理,但是我由于不太熟悉相关操作以致于第二次实验的时候还是需要不断地查阅资料,依然不能真正自己完成一项代码的编译,期间
4000
还是会出现不少的错误。但在解决错误过程中也学到了不少。
相关文章推荐
- 《数据结构》实验二: 线性表综合实验——(1)顺序表
- 实验二 线性表综合实验之顺序表
- 实验二 线性表综合实验之静态链表
- 数据结构:实验二线性表综合实践⑤间接寻址
- 实验二线性表综合实验-顺序表
- 实验二 线性表综合实验之双链表
- 实验二总结(比较线性表的顺序表与链表)
- 实验二线性表综合实验-单链表
- 数据结构实验之图书馆借书线性表的顺序和链式存取结构的应用
- 实验二 线性表综合实验之单链表
- 数据结构实验一:基于线性表的学生信息管理(顺序结构)
- 实验二线性表综合实验-双链表
- 实验1 线性表的顺序实现
- [SDUT](2116)数据结构实验之链表一:顺序建立链表 ---链式存储(线性表)
- 信管16数据结构:实验二 线性表综合实验
- 实验二 线性表综合实验之《单链表》
- 《数据结构》实验二: 线性表综合实验——总结线性表的几种主要存储结果
- 《数据结构》实验二:线性表的实验(顺序表)
- 《数据结构》实验二:线性表的实验(顺序表)
- 实验报告1—线性表的顺序结构