实验一:数据结构顺序表的建立

来源:互联网 发布:数据库的存储原理 编辑:程序博客网 时间: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
原创粉丝点击