1 / 11
文档名称:

《数据结构》实验1.docx

格式:docx   大小:40KB   页数:11页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

《数据结构》实验1.docx

上传人:花开一叶 2019/4/27 文件大小:40 KB

下载得到文件列表

《数据结构》实验1.docx

文档介绍

文档介绍:芆实验1:顺序表的操作实验肆一、实验名称和性质蒃所属课程羈数据结构蚈实验名称蒆顺序表的操作膄实验学时肀2螆实验性质羅√验证□综合√设计蚀必做/选做膁√必做□选做腿二、。。。芇三、。、删除和查找操作(验证性内容)。(设计性内容)。(应用性设计内容)。膃四、实验的软硬件环境要求袁硬件环境要求:肁 PC机(单机)螈使用的软件名称、版本号以及模块:蚃 Windows环境下的VC++、知识准备衿前期要求熟练掌握了C语言的编程规则、方法和顺序表的基本操作算法。袆六、:袀(1)根据输入顺序表的长度n和各个数据元素值建立一个顺序表,并输出顺序表中各元素值,观察输入的内容与输出的内容是否一致。艿(2)在顺序表的第i个元素之前插入一个值为x的元素,并输出插入后的顺序表中各元素值。螅(3)删除顺序表中第i个元素,并输出删除后的顺序表中各元素值。膂(4)在顺序表中查找值为e的数据元素,如果查找成功,则显示“查找成功”和该元素在顺序表中的位置,否则显示“查找失败”。:莇线性表的顺序存储结构称为顺序表,顺序表的存储结构描述为:膅#defineMAXLEN30/*线性表的最大长度*/袃typedefstruct蝿{Elemtypeelem[MAXLEN];/*顺序表中存放元素的数组,其中elemtype为抽象数据类型,在程序具体实现时可以用任意类型代替*/蒅intlength;/*顺序表的长度,即元素个数*/薄}Sqlist;/*顺序表的类型*/薃【核心算法提示】:要在顺序表中的第i个数据元素之前插入一个数据元素x,首先要判断插入位置i是否合法,假设线性表的表长为n,则i的合法值范围:1≤i≤n+1,若是合法位置,就再判断顺序表是否满,如果满,则增加空间或结束操作,如果不满,则将第i个数据元素及其之后的所有数据元素都后移一个位置,此时第i个位置已经腾空,再将待插入的数据元素x插入到该位置上,最后将线性表的表长增加1。:要删除顺序表中的第i个数据元素,首先仍然要判断i的合法性,i的合法范围是1≤i≤n,若是合法位置,则将第i个数据元素之后的所有数据元素都前移一个位置,最后将线性表的表长减1。:要在顺序表中查找一个给定值为e的数据元素,则可以采用顺序查找的方法,从顺序表中第1个数据元素开始依次将数据元素值与给定值e进行比较,若相等则查找成功,函数返回该数据元素在顺序表中的位置,若顺序表中所有元素都与给定值e不相片,则查找失败,函数返回0值。莃【核心算法描述】薈statusSqlist_insert(Sqlist&L,inti,Elemtypex)羆/*在顺序表L中第i个元素前插入新元素x*/蒃{if(i<1||i>+1)returnERROR;/*插入位置不正确则出错*/肄if(>=MAXLEN)returnOVERFLOW;虿/*顺序表L中已放满元素,再做插入操作则溢出*/芈for(j=-1;j>=i-1;j--)[j+1]=[j];/*将第i个元素及后续元素位置向后移一位*/[i-1]=x;/*在第i个元素位置处插入新元素x*/++;/*顺序表L的长度加1*/蒇returnOK;薆}莁statusSqlist_delete(Sqlist&L,inti,Elemtype&e)蒈/*在顺序表L中删除第i个元素*/薅{if(i<1||i>)returnERROR;/*删除位置不正确则出错*/肅for(j=i;j<=-1;j++)[j-1]=[j];/*将第i+1个元素及后继元素位置向前移一位*/--;/*顺序表L的长度减1*/袈returnOK;蒄}螁intSqlist_search(SqlistL,Elemtypex)蚁/*在顺序表中查找值为x的元素,如果找到,则函数返回该元素在顺序表中的位置,否则返回0*/肆{for(i=1;i<=&&[i-1]!=x;i++);袄/*从第一个元素开始依次将每个元素值与给定值x比较*/薂if(i<=)蒈returni;莈else芃returno;节}#include<>/*顺序表Sql