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

实验一 线性表的基本操作实现及其应用

一、实验目的

1、熟练掌握线性表的结构特点,掌握顺序表的基本操作。

2、巩固 C++相关的程序设计方法与技术。

3、学会使用顺序表解决实际问题。

二、实验内容

1、顺序表的建立与操作实现 建立 n 个元素的顺序表(n 的大小和表里数据自己确定)。

2、实现相关的操作:输出,插入,删除,查找等功能。

3、编写完整程序实现,程序语言不限定,使用技术形式不定。


 源代码如下:

#include
using namespace std;
const int MaxSize =100;
template 
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 //有参构造函数
SeqList::SeqList(DataType a[],int n)
{if (n>MaxSize)throw"参数非法";
for (int i=0;i//按位查找
DataType SeqList::Get(int i)
{
if (i<1&&i>length)throw "查找位置非法";
else return data [i-1];
}
template //按值查找
int SeqList::Locate (DataType x)
{for (int i=0;i//插入
void SeqList::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 //删除
DataType SeqList::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//输出
void SeqList::PrintList(){for (int i=0;iList(score,8);//类模板定义对象
cout<<"数据表的所有数据为:"<


运行结果如下:
实验一:数据结构顺序表的建立_第1张图片


分析总结:

在实验室写代码时,对模板类和顺序表很陌生,所以花费了很多的时间去看书,有很多代码都是参照书本的,但是在几天的努力下,总算顺利完成了顺序表的建立,较熟练掌握线性表的结构特点和顺序表的基本操作。还巩固了 C++类模板的应用。但我还有很多东西要学,希望在接下来的学习中更加熟练的掌握程序设计。





你可能感兴趣的:(实验一:数据结构顺序表的建立)