实验二顺序表
来源:互联网 发布:有没有哪种编程的实例 编辑:程序博客网 时间:2024/05/21 01:43
一、实验目的
巩固线性表的数据结构的存储方法和相关操作,学会针对具体应用,使用线性表的相关知识来解决具体问题。二、实验内容
建立一个由n个学生成绩的顺序表,n的大小由自己确定,每一个学生的成绩信息由自己确定,实现数据的对表进行插入、删除、查找等操作。分别输出结果。
源代码为:
#include<iostream> using namespace std; const int MaxSize =100; template <class DataType> class SeqList {public: SeqList(){length=0;}//建立空的顺序表 SeqList(DataType a[],int n);//建立长度为n的顺序表 ~SeqList(){}//析构函数 int Length(){return length;}//求线性表的长度 DataType Get(int i); int Locate (DataType x); void Insert(int i,DataType x);//在位置i插入x DataType Delete(int i); void PrintList(); private : DataType data[MaxSize];//存放数据元素的数组 int length;//线性表的长度 }; template <class DataType>//有参构造函数 SeqList<DataType>::SeqList(DataType a[],int n) {if (n>MaxSize)throw"参数非法"; for (int i=0;i<n;i++) data[i]=a[i]; length=n; } template <class DataType>//按位查找 DataType SeqList<DataType >::Get(int i) { if (i<1&&i>length)throw "查找位置非法"; else return data [i-1]; } template <class DataType>//按值查找 int SeqList<DataType >::Locate (DataType x) {for (int i=0;i<length ;i++) if (data [i]==x)return i+1; return 0;//查找失败,退出循环 } template <class DataType>//插入 void SeqList<DataType >::Insert (int i ,DataType x) {if (length>=MaxSize) throw "上溢"; if (i<1||i>length+1)throw"位置"; for (int j=length;j>=i;j--) data[i]=data[j-1]; data[j-1]=x; length++; } template <class DataType>//删除 DataType SeqList<DataType>::Delete(int i) { int x; if(length==0)throw "下溢"; if (i<1||i>length+1)throw"位置非法"; x=data[i-1]; for (int j=i;j<length;j++) data[j-1]=data[j]; length--; return x; }template <class DataType>//输出 void SeqList<DataType>::PrintList(){for (int i=0;i<length;i++)cout <<data[i]<<" ";} void main() {float score[8]={100,98,77,76,84,88,90,100}; SeqList<float>List(score,8);//类模板定义对象 cout<<"数据表的所有数据为:"<<endl; List.PrintList();//输出功能 cout<<endl<<"删除位置8的数据元素,输出结果为:"<<endl; List.Delete(8);//删除功能 List.PrintList(); cout<<endl<<"在位置8加入数据元素66,输出数据为:"<<endl; List.Insert(8,66);//插入功能 List.PrintList(); cout<<endl<<"查找操作"<<endl<<"“按位查找”查找位置8的数据元素值为:"<<endl; cout<<List.Get(8)<<endl; cout<<endl<<"“按值查找”查找值为98的数据元素的位置是:"; cout<<List.Locate(98)<<endl; }
阅读全文
0 0
- 实验二顺序表
- 实验二.顺序表
- 实验二顺序表
- 实验二 顺序表
- 实验二------顺序表
- 实验二之顺序表
- 实验二(顺序表)
- 实验二之顺序表
- 【实验二】顺序表实验验证
- 实验二~顺序表的实现
- 实验二 顺序表和单链表
- 数据结构实验二之顺序表
- 《数据结构》实验二(顺序表)
- 实验二 顺序表实现学生成绩
- 实验二:顺序表的实现
- 实验二 顺序表及其应用
- 实验二 创建学生成绩-顺序表
- 《数据结构》实验二:线性表的实验(顺序表)
- 【面向JS--数组遍历】
- Ruby学习笔(06)_方法
- seo高手需要具备的能力
- 判断两个链表是否相交,及其第一个公共交点
- Linux中JDK安装及环境变量配置
- 实验二顺序表
- springmvc处理上传图片代码(校验图片尺寸、图片大小)
- 4.Unity_Shader_CG 高光反射模型
- SVN汉化包安装方法
- C++ 验证DH算法
- 对称的二叉树java实现
- [RK3288][Android7.1] Android7.1 nougat source code下载
- BZOJ 1601 [Usaco2008 Oct] 最小生成树 解题报告
- 上传自己的镜像被拒绝denied: requested access to the resource is denied