数据结构课程设计数据结构相关算法演示系统.doc

数据结构课程设计数据结构相关算法演示系统.doc

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计数据结构相关算法演示系统

课程设计实验报告 课程名称:《数据结构课程设计》 设计题目:数据结构相关算法的演示系统(1) 院系:信息科学与工程学院 目录 需求分析………………………………… 3 概要设计………………………………… 4 详细设计………………………………… 6 调试分析………………………………… 21 测试结果………………………………… 23 课程设计总结…………………………… 33 参考文献…………………………………34 附录………………………………………34 一、需求分析: 设计一个数据结构相关算法的演示系统,主要实现的功能如下: 1:顺序表的插入、删除和合并等基本操作; 2: 利用插入运算建立链表;实现链表的插入、删除、计数、输出及有序链表的合并; 3:串的模式匹配(包括求next值和nextval值)。 基于以上要求,可以在设计系统的时候,在主界面设计三个大模块,即是按照要求来划分模块,每个模块实现不同的功能要求,第一个模块就实现线性表的相关操作,第二个模块就实现链表的相关操作,第三个模块就实现串的相关操作。 (一):在第一个模块中,即是顺序表的相关操作中,主要能实现顺序表的循环插入赋值,插入、删除和合并等基本操作,顺序表的元素可以是数字也可以是字符等,但是在程序中已经定义ElemType为int型,故输入的形式为整数,采用的是动态存储分配(初始定义LIST_INIT_SIZE 100),当输入的元素过多内存不足是会自动添加(LISTINCREMENT 10),当然输出的也是整数,第一个模块根据功能分为几个小菜单项,以下是测试数据: 顺序表的初始化,输入1、2、3、4以‘00’结束,输出为:初始化后的顺序表元素为NO.0 1, NO.0 2, NO.0 3, NO.0 4, 当然元素个数没有限制,但是单个的元素值限制,因为一个int型数据通常用两个字节存放,即是16位二进制,当输入的数值超过这个范围是计算机打印出乱码,此时可以选择重新输入数据。 在顺序表的插入操作中,要求你输入插入的位置和插入的值,例如在上面初始化的基础上,在第4个位置插入4,结果为:插入元素后的顺序表元素为 NO.0 1, NO.0 2, NO.0 3, NO.0 4,当插入的位置大于了已有的表长度,则系统会提醒输入错误,请重新输入!删除操作和插入操作一样,首先选择要删除的元素位置,例删除第二个元素,结果为:删除操作后顺序表的元素是NO.0 1, NO.0 3, NO.0 4,同样的当所选择的位置大于了当前已有的长度,则系统提起输入错误,请重新输入!! 在顺序表的合并操作中,主要是把两个元素值非递减排列的线性表合并为一个,并且合并后的顺序表值也是非递减的,输入另外一个顺序表的元素,例输入4、5、6,结果为:合并后的顺序表元素为NO.0 1, NO.0 2, NO.0 3, NO.0 4,、NO.0 5, NO.0 6, 当所输入的元素值不是按非递减的顺序,例两表的元素分别为6、2、1和8、4、3时,结果为6、2、1、8、4、3,并无顺序。 (二):在第二个大模块中,主要实现的是链表的初始化,插入,删除,计数,查询和有序链表的合并功能,并且有检错和改错的能力,和线性表的一样,定义的数据类型为int型,故所输入的也是整数,元素个数不限,但是单个的元素值有限,链表不需要为其开辟一块内存空间,是非随机存储的存储结构,以下是测试数据: 在链表的初始化中,要求先输入要插入的元素个数,如3个分别是3、2、1,并逆序插入,结果为:初始化后的链表的值为1、2、3,链表长度为3,和线性表一样当所输入的元素值超过int型的字节后,就会出现乱码,该模块中对链表的计数是结合在每一个功能中,当对链表进行操作后可以自动返回链表的长度即是计数功能,此时可以重新输入元素在进行下面的操作。 在链表的插入功能中,可以根据已有的链表选择插入的位置和插入值,例在初始化的基础上在第4个位置插入4,结果为:插入成功,插入后链表的元素为1、2、3、4,链表长度为4,如果输入的位置大于了已有的链表长度,那么系统会提醒输入错误,请重新输入插入的位置和元素值,或者可以键入‘0’直接返回上一级菜单。删除功能和插入功能基本上一致,首先也是要输入要删除的元素位置,例删除第3号元素,结果为:删除成功,删除后链表的元素为1、2、4,链表长度为3,当所输入的位置大于当前的链表长度即不存在该位置,系统提示不存在该节点,请重新输入要删除的位置,如不想删除操作了,可键入‘0’返回上一级菜单。 选择了链表的合并功能后,系统会提示初始化另外一个链表,输入元素个数和元素值,该合并功能也是按元素的非递减进行合并,合并后的链表元素

文档评论(0)

bokegood + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档