实验一线性表的基本操作实现及其应用
2017-09-21 11:15
393 查看
一、实验目的
1、熟练掌握线性表的结构特点,掌握顺序表的基本操作。2、巩固 C++相关的程序设计方法与技术。3、学会使用顺序表解决实际问题。
二、实验内容
1、顺序表的建立与操作实现建立 n 个元素的顺序表(n 的大小和表里数据自己确定),实现相关的操作:输出,插入,删除,查找等功能。编写完整程序实现,程序语言不限定,使用技术形式不定。
三、实验步骤
1、创建一个模板类;2、构造函数创建列表,Length,Get,Locate,Insert,Delete,Printlist函数;3、在主函数中输入数据。
四、实验心得
书本上给出的示例代码,将它们全部敲到自己电脑的编译环境中不一定能在正常运行,很多细节的东西还需自己一步一步去调试,去修正,去思考。就拿书本上的示例代码中的循环语句来说,里面的变量i并没有定义数据类型,编译时机器就报错了;还有一些错误是逻辑错误,语法并没有问题,但代入数据后发现并不能得出应得的结果,就拿书上代码里条件语句中的“||”和“&&”两个符号来说,意义完全不同,需谨慎。
代码实现如下:
1、熟练掌握线性表的结构特点,掌握顺序表的基本操作。2、巩固 C++相关的程序设计方法与技术。3、学会使用顺序表解决实际问题。
二、实验内容
1、顺序表的建立与操作实现建立 n 个元素的顺序表(n 的大小和表里数据自己确定),实现相关的操作:输出,插入,删除,查找等功能。编写完整程序实现,程序语言不限定,使用技术形式不定。
三、实验步骤
1、创建一个模板类;2、构造函数创建列表,Length,Get,Locate,Insert,Delete,Printlist函数;3、在主函数中输入数据。
四、实验心得
书本上给出的示例代码,将它们全部敲到自己电脑的编译环境中不一定能在正常运行,很多细节的东西还需自己一步一步去调试,去修正,去思考。就拿书本上的示例代码中的循环语句来说,里面的变量i并没有定义数据类型,编译时机器就报错了;还有一些错误是逻辑错误,语法并没有问题,但代入数据后发现并不能得出应得的结果,就拿书上代码里条件语句中的“||”和“&&”两个符号来说,意义完全不同,需谨慎。
代码实现如下:
// 顺序表.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include<iostream> using namespace std; const int Maxsize=50; template <typename DT> class SeqList { public: SeqList(){length=0;} SeqList(DT a[],int n); //~SeqList(); int Length(){return length;} DT Get(int i); int Locate(DT x); void Insert(int i,DT x); DT Delete(int i); void PrintList(); private: DT data[Maxsize]; int length; }; template <typename DT> SeqList<DT>::SeqList(DT a[],int n) { if(n>Maxsize) cout<<"参数非法"; for(int i=0;i<n;i++) data[i]=a[i]; length=n; } template <typename DT> DT SeqList<DT>::Get(int i) {if(i<1||i>length)cout<<"查找位置非法"; else return data[i-1]; } template <typename DT> int SeqList<DT>::Locate(DT x) {for(int i=0;i<length;i++) if(data[i]==x) return i+1; return 0; } template <typename DT> void SeqList<DT>::Insert(int i,DT x) { if (length>Maxsize)cout<<"上溢"<<endl; if(i<1||i>length+1)cout<<"插入位置非法"<<endl; for(int j=length;j>=i;j--) data[j]=data[j-1]; data[i-1]=x; length++; } template <typename DT> DT SeqList<DT>::Delete(int i) {if(length==0)cout<<"下溢"<<endl; if(i<1||i>length)cout<<"删除位置非法"<<endl; DT x=data[i-1]; for(int j=i;j<length;j++) data[j-1]=data[j]; length--; return x; } template <typename DT> void SeqList<DT>::PrintList() {for(int i=0;i<length;i++)cout<<data[i]<<" ";cout<<endl;} int m 4000 ain() { int a[5]={90,88,72,93,84}; SeqList <int>seq(a,5);//创建一个列表,初始化 seq.PrintList();//遍历,应输出90 88 72 93 84这五个数据 cout<<seq.Get(5)<<endl;//按位查找第五位,应输出84 cout<<seq.Locate(72)<<endl;//按值查找,应输出72的位置3 seq.Insert(2,100);//插入操作,在第二个位置插入数值100 seq.PrintList();//遍历,应输出90 100 88 72 93 84 cout<<seq.Length()<<endl;//输出列表长度,应输出6 seq.Delete(1);//删除操作,删除列表中第一个数值 seq.PrintList();//应输出100 88 72 93 84 return 0; }输出结果:
相关文章推荐
- 实验一线性表的基本操作实现及其应用
- 实验一线性表的基本操作实现及其应用
- 实验一线性表的基本操作实现及其应用
- 实验一:线性表的基本操作实现及其应用(C++)
- 实验一 线性表的基本操作实现及其应用
- 实验一线性表的基本操作实现及其应用
- 实验一线性表的基本操作实现及其应用
- 实验一:线性表的基本操作实现及其应用
- 实验一线性表的基本操作实现及其应用
- 实验一 线性表的基本操作实现及其应用
- 实验一 线性表的基本操作实现及其应用
- 实验一线性表的基本操作实现及其应用
- 爹地的实验:实验一: 数据结构实验一线性表的基本操作实现及其应用
- 实验一线性表的基本操作实现及其应用
- 实验一 线性表的基本操作实现及其应用
- 实验一 线性表的基本操作实现及其应用
- 实验一线性表的基本操作实现及其应用
- 实验一线性表的基本操作实现及其应用
- 实验一 线性表的基本操作实现及其应用
- 实验一线性表的基本操作实现及其应用