顺序表实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机与信息技术学院综合性、设计性实验报告 专业:网络工程 年级/班级:大二 2016 —2017学年第一学期 课程名称 数据构造 指导教师 李四 学号姓名X张三 项目名称 次序表构造的操作 实验种类 综合性/设计性 实验时间 实验地址 216机房 一、实验目的 (1)熟习次序表的创办、取值、查找、插入、删除等算法,模块化程序设计方法。 二、实验仪器或设备 (1)硬件设备: (2)配置软件:  CPU为Pentium4 MicrosoftWindows7  以上的计算机,内存 与VC++6.0  2G  以上 三、整体设计(设计原理、设计方案及流程等) 设计原理:次序表的储藏构造的特色是在逻辑上相邻的数据元素,其物理次序也是相邻的。 设计方案:采纳模块化设计的方法,设计各个程序段,最后经过主函数实现各个程序的各个功能。设计时,需要考虑用户输入非法数值,因此要在程序中写入可以办理非法数值的代码。 设计流程: 引入所需的头文件; 定义状态值; 写入次序表的各种操作的代码; 写入主函数,分别调用各个函数。在调用函数时,采纳if构造进行判断输入值可否非法,进而执行相应的程序。 四、实验步骤(包含主要步骤、代码解析等) #includestdio.h//EOF(=^Z 或F6),NULL #includestdlib.h//srand( ),rand( ),exit(n) #includemalloc.h//malloc( ),alloc( ),realloc( ) 等 #includelimits.h//INT_MAX 等 #includestring.h #includectype.h #includemath.h//floor( ),ceil( ),abs( ) #includeiostream.h//cout,cin #includetime.h//clock( ),CLK_TCK,clock_t #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 typedef int Status;//Status 是函数的种类, //其值是函数结果状态代码,如 OK等 typedef int ElemType; #defineMAXSIZE100  //  最大长度 typedefstruct { ElemType*elem; intlength;//  //  指向数据元素的基地址 线性表的当前长度 }SqList; //初始化线性表 算法步骤: 1.为次序表L动向分配一个预约义大小的数组空间,使 址。 2.将表的当前长度设为0。  elem  指向这做段空间的基地 {//构造一个空的次序表L L.elem=newElemType[MAXSIZE];//if(!L.elem)exit(OVERFLOW);//  为次序表分配空间 储藏分配失败 printf(  空次序表创办成功!  \n); L.length=0;  //空表长度为  0 returnOK; } //取值 算法步骤: 1.判断指定的地址序号 2.若i值合理,则将第 据元素的传值。  i值可否合理(i个数据元素  1≤i≤L.length),若不合理,则返回 L.elem[i-1]赋给参数e,经过e返回第  ERROR。 i个数 StatusGetElem_Sq(SqListL,inti,ElemTypee) { if(i1||iL.length)returnERROR;  //  判断  i  值可否合理,若不合理,返回 ERROR e=L.elem[i-1];//  第  i-1  的单元储藏着第  i个数据 returnOK; } //查找 算法步骤: 1.从前一个元素起,挨次和e对照较,若找到与 成功,返回该元素的序号i+1。 2.若查遍整个次序表都没有找到,则查找失败,返回 intLocateELem_Sq(SqListL,ElemTypee) {  e相等的元素 0。  L.elem[i],  则查找 inti; for(i=0;iL.length;i++) if(L.elem[i]==e)returni+1; return0; } 插入 算法步骤: 判断插入地址i可否合法(i值的合法范围是1≤i≤n+1)。 2.判断次序表的储藏空间可否已满,若满则返回ERROR。 3. 将第n个至第i 个地址的元素挨次搬动一个地址,空出第 i个地址(i=n+1)时无 需搬动)。 4. 将要插入的新元素 e放入第i个地址。 5. 表长加1。 Sta

您可能关注的文档

文档评论(0)

135****2372 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档