实验一:数据结构顺序表的建立
来源:互联网 发布:数据库的存储原理 编辑:程序博客网 时间:2024/06/05 00:11
实验一 线性表的基本操作实现及其应用
一、实验目的
1、熟练掌握线性表的结构特点,掌握顺序表的基本操作。
2、巩固 C++相关的程序设计方法与技术。
3、学会使用顺序表解决实际问题。
二、实验内容
1、顺序表的建立与操作实现 建立 n 个元素的顺序表(n 的大小和表里数据自己确定)。
2、实现相关的操作:输出,插入,删除,查找等功能。
3、编写完整程序实现,程序语言不限定,使用技术形式不定。
源代码如下:
#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插入xDataType 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]={10,11,12,13,14,15,16,17};SeqList<float>List(score,8);//类模板定义对象cout<<"数据表的所有数据为:"<<endl;List.PrintList();//输出功能cout<<endl<<"删除位置7的数据元素,输出结果为:"<<endl;List.Delete(7);//删除功能List.PrintList();cout<<endl<<"在位置6加入数据元素18,输出数据为:"<<endl;List.Insert(6,18);//插入功能List.PrintList();cout<<endl<<"查找操作"<<endl<<"“按位查找”查找位置5的数据元素值为:"<<endl;cout<<List.Get(5)<<endl;cout<<endl<<"“按值查找”查找值为18的数据元素的位置是:";cout<<List.Locate(18)<<endl;}
运行结果如下:
分析总结:
在实验室写代码时,对模板类和顺序表很陌生,所以花费了很多的时间去看书,有很多代码都是参照书本的,但是在几天的努力下,总算顺利完成了顺序表的建立,较熟练掌握线性表的结构特点和顺序表的基本操作。还巩固了 C++类模板的应用。但我还有很多东西要学,希望在接下来的学习中更加熟练的掌握程序设计。
阅读全文
0 0
- 实验一:数据结构顺序表的建立
- 数据结构|顺序表的建立(实验1)
- 数据结构实验一 线性表的顺序存储实验
- 实验一顺序表的建立与操作
- 数据结构实验之链表一:顺序建立链表
- 数据结构实验之链表一:顺序建立链表
- 数据结构实验之链表一:顺序建立链表
- 数据结构实验之链表一:顺序建立链表
- SDUTOJ 2116 数据结构实验之链表一:顺序建立链表
- 数据结构实验之链表一:顺序建立链表
- 数据结构实验之链表一:顺序建立链表
- 【2116】数据结构实验之链表一:顺序建立链表
- 数据结构实验之链表一:顺序建立链表
- 数据结构实验之链表一:顺序建立链表
- SDUTOJ 2116 数据结构实验之链表一:顺序建立链表
- 数据结构实验之链表一:顺序建立链表
- SDUT 2116 数据结构实验之链表一:顺序建立链表
- 数据结构实验之链表一:顺序建立链表
- 使用原生JavaScript实现jQuery的css选择器
- 输入一组数字,统计每个数字的个数后按序输出
- Codeforces Round #435 (Div. 2)C. Mahmoud and Ehab and the xor
- C语言如何改变一个常量的值和volatile关键字
- 实验一线性表的基本操作实现及其应用
- 实验一:数据结构顺序表的建立
- 常见的排序算法源代码
- 控制跳转语句break ,continue,return 的应用场景和区别
- kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)
- 大端小端与LSB和MSB的小故事
- 修改浏览器User-Agent
- 泛型
- Java-猴子分桃
- 对python文件方法open的探究