数据结构实验报告(一)

数据结构实验报告(一)数据结构实验报告 一 一 实验名称实验一 nbsp 线性表的基本操作实现及其应用二 实验目的 1 熟练掌握线性表的结构特点 掌握顺序表的基本操作 2 巩固 C 相关的程序设计方法与技术 3 学会使用顺序表解决实际问题 三 实验内容顺序表的建立与操作实现建立 n 个元素的顺序表 n 的大小和表里数据自己确定 实现相关的操作 输出 插入 删除 查找等功能 编写完整程序

数据结构实验报告(一)

一、实验名称

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

二、实验目的

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

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

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

三、实验内容

顺序表的建立与操作实现

建立 n 个元素的顺序表(n 的大小和表里数据自己确定),实现相关的操作:输出,插 入,删除,查找等功能。编写完整程序实现,程序语言不限定,使用技术形式不定。

四、详细设计(C++)

1.   算法设计

设定线性表的数据元素为int型,线性表最多有10个元素。定义顺序表的数据类型——顺序表类,包括插入、删除、查找、遍历等基本操作。

查找操作:

1.从第一位开始依次查找与x值相同的元素;

2.找到即输出下标为i的元素的序号i+1;

插入操作:

1.如果表满了,则抛出上溢异常;

2.如果元素的插入位置不合理,则抛出位置异常;

3.将最后一个元素直至第i个元素分别向后移动一个位置;

4.将元素x填入位置i处;

5.表长加1。

删除操作:

1.如果表空,则抛出下溢异常;

2.如果删除位置不合理,则抛出删除位置异常;

3.取出被删除元素;

4.将下标为i,i+1,…,n-1处的元素分别移到下标i-1,i,…,n-2处;

5.表长减1,返回被删除值。

2.源程序代码

#include

using namespace std;

const int MaxSize=10;

template <classDataType>

class SeqList

{

public:

SeqList(){length=0;}

SeqList(DataTypea[],int n);

~SeqList(){}

int Length(){
returnlength;}

DataType Get(int i);

int Locate(DataType x);

void Insert(inti,DataType x);

DataType Delete(int i);

void PrintList();

private:

DataTypedata[MaxSize];

int length;

};

 

template<classDataType>

SeqList

::SeqList(DataTypea[],
int n)

{

if(n>MaxSize) throw参数非法;

for(inti=0;i

data[i]=a[i];

length=n;

}

 

template<classDataType>

int SeqList

::Locate(DataType x)

{

for(inti=0;i

if(data[i]==x) returni+1;

return 0;

}

 

template<classDataType>

void SeqList

::Insert(
int i,DataType x)

{

if(length>=MaxSize) throw上溢;

if(i<1||i>length+1) throw位置;

for(intj=length;j>=i;j–)

data[j]=data[j-1];

data[i-1]=x;

length++;

}

 

template<classDataType>

DataTypeSeqList

::Delete (
int i)

{

if(length==0) throw下溢;

if(i<1||i>length) throw位置;

DataTypex=data[i-1];

for(intj=i;j

data[j-1]=data[j];

length–;

return x;

}

 

template<classDataType>

void SeqList

::PrintList()

{

for(inti=0;i

cout<
” “;

cout<

}

 

void main()

{

int score[9]={59,62,74,85,66,47,98,29,10};

SeqList<int> List(score,9);

cout<<查询分数前的数据为:<

List.PrintList();

cout<<值为66的元素位置为:;

cout<

cout<<插入前的数据为:<

List.PrintList();

try

{

List.Insert(7,76);

}

catch(char *s)

{

    cout<

}

cout<<插入后的数据为:<

List.PrintList();

cout<<删除前的数据为:<

List.PrintList();

try

{

List.Delete(10);

}

catch(char *s)

{

cout<

}

cout<<删除第十个元素后的数据为:<

    List.PrintList();

system(“pause”);}

五、运行与测试结果

数据结构实验报告(一)

六、总结与心得

        在完成这次实验作业的过程中,我还是遇到了挺多困难。一部分原因是知识掌握不够牢固,一部分原因是太久没练习写程序,有点生疏。上学期学的C++也快还给老师了。所以以后要多查阅资料,上课要认真听讲,才能更好地掌握知识。找出以前的书好好复习c++的知识,更有助于我接下来的学习。多实践,多练习,孰能生巧。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217238.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午10:02
下一篇 2026年3月18日 上午10:02


相关推荐

  • iOS开发-用户定位获取-CoreLocation的实际应用-CLLocationManger获取定位权限-CLLocation详细使用方式

    iOS开发-用户定位获取-CoreLocation的实际应用-CLLocationManger获取定位权限-CLLocation详细使用方式iOS提供了两个框架用来定位以及地图显示。CoreLocation框架包含的类可以帮助设备确定位置和航向以及使用基于位置的有效信息。MapKit框架未定位提供了户用页面的支持(地图显示),里面包含了地图视图、卫星地图视图以及2D、3D混合视图,并且能够让开发人员管理地图标注和地图覆盖层,前者用于标注地点(常见的地图大头针),后者用来突出某区域或者路线等。本期内容:CLLocationMan…

    2022年7月26日
    6
  • linux查看操作系统版本信息

    linux查看操作系统版本信息一 linux 下如何查看已安装的 centos 版本信息 1 Linux 查看当前操作系统版本信息 cat proc versionLinux 6 32 696 el6 x86 64 gccversion4 4 RedHat4 4 7 18 GCC 1SMPTueMar21 29 05UTC20172 Linux 查看版本当前操作系统内核信息 uname

    2026年3月17日
    2
  • 智能优化算法:灰狼优化算法-附代码

    智能优化算法:灰狼优化算法-附代码智能算法:灰狼优化算法-附代码摘要:受灰狼群体捕食行为的启发,Mirjalili等[1]于2014年提出了一种新型群体智能优化算法:灰狼优化算法。GWO通过模拟灰狼群体捕食行为,基于狼群群体协作的机制来达到优化的目的。GWO算法具有结构简单、需要调节的参数少,容易实现等特点,其中存在能够自适应调整的收敛因子以及信息反馈机制,能够在局部寻优与全局搜索之间实现平衡,因此在对问题的求解精度和收敛速度方面都有良好的性能。1.算法原理灰狼属于犬科动物,被认为是顶级的掠食者,它们处于生物

    2022年5月24日
    33
  • js 对象转数组对象_js 对象数组

    js 对象转数组对象_js 对象数组js数组对象相互转换

    2025年10月22日
    4
  • bcp sqlcmd bulkinsert在unicode问题,Unexpected EOF encountered in BCP data-file

    bcp sqlcmd bulkinsert在unicode问题,Unexpected EOF encountered in BCP data-file

    2022年1月9日
    62
  • 利用Anaconda安装pytorch和paddle深度学习环境+pycharm安装—免额外安装CUDA和cudnn(适合小白的保姆级教学)[通俗易懂]

    利用Anaconda安装pytorch和paddle深度学习环境+pycharm安装—免额外安装CUDA和cudnn(适合小白的保姆级教学)[通俗易懂]一、英伟达驱动安装与更新显卡驱动程序就是用来驱动显卡的程序,它是硬件所对应的软件。驱动程序即添加到操作系统中的一小块代码,其中包含有关硬件设备的信息。正常有显卡的电脑都是有驱动程序的,但是有的时候驱动可能版本比较低,支持的cuda版本也是比较低的(但是有的人的显卡是比较老的,就不建议更新驱动,这样会导致各种各样的问题,但是搞深度学习还是要用一块好的显卡用来学习,这点我是有血泪教训的,咬咬牙买块好的显卡,把知识学到手,以后的工资可以多赚会很多显卡的钱),英伟达出的30系列的显卡好像只支持cu…

    2022年6月6日
    77

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号