数据结构实验报告(报告+C语言源代码).docVIP

数据结构实验报告(报告+C语言源代码).doc

  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文档。上传文档
查看更多
PAGE 1 目录 TOC \o 1-3 \h \z \u 前 言 2 概要设计 3 1.1 数据结构设计 3 2.1 算法设计 3 2.1.1 建立链表的算法 3 2.1.2 链表插入一个元素的算法 3 2.1.3 链表删除一个元素的算法 3 3.1 ADT描述 4 4.1 详细设计…………………………………………… ……………………………… 4 4.1.1 数据存储结构……………………………… ……………………………… 4. 4.1.2 主要伪代码…… …………………… ……………………………………… 4 软件测试 7 心得体会 11 源代码 12 参考文献………………………………………………………………………. ..21 前 言 数据结构是计算机程序设计的重要理论技术基础,它不仅是计算机学科的核心课程,而且已经成为其他理工专业的热门选修课。 随着计算机科学的技术和发展,计算机的功能和运算速度不断地提高,其应用于信息处理的范围日益扩大。与之相应的,计算机的加工处理对象也从简单的数据发展到一般的符号,进而发展到更复杂的数据结构。数据结构是计算机程序设计的重要理论技术基础,数据结构的表示和操作都涉及到算法,如何描述数据的结构和讨论有关的算法,又涉及到程序设计语言。因此,它不仅是计算机学科的核心课程,而且已经成为其他理工专业的热门选修课。 我们通过对这门基础课程的学习,要学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适合的逻辑结构,储存结构及其相应的算法,并初步掌握算法时间分析和空间分析的技术。 通过实际操作去了解数据结构原理,练习编写代码的能力,以及抽象能力。 从课程性质上讲,“数据结构”是一门专业技术基础课。它的要求是学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构,存储结构及相应的算法,并初步掌握算法的时间分析和空间分析的技术。另一方面,数据结构的学习过程也是复杂程序设计的训练过程,要求编写的程序结构清楚和正确易读,符合软件工程的规范。 概要设计 1.1 数据结构设计 采用链式储存结构。 typedef struct LNode{ ElemType data; struct LNode *next; }LNode,*LinkList; 2.1 算法设计 2.1.1 建立链表的算法 (1)算法思想分析 首先从表尾到表头逆向建立单链表,然后再建立的单链表基础上进行对链表上的元素进行查询,删除,插入的操作。 (2)要点描述 首先建立一个带头结点的单链表,通过申请内存,先建立一个空链表。然后结点的插入,建立一个有多个结点的链表。在进行查询等操作。 (3)时间和空间复杂度分析 程序的时间复杂度为O(n)。 2.1.2 链表插入一个元素的算法 (1)算法思想分析 要生成一个新数据域为X的结点,然后插入在单链表中。 (2)要点描述 在链表中插入结点只需要修改指针。若要在第 i 个结点之前插入元素,修改的是第 i-1 个结点的指针。 (3)时间和空间复杂度分析 时间复杂度O(n) 2.1.3 链表删除一个元素的算法 (1)算法思想分析 要删除一个结点,必须修改指针并且释放空间。 (2)要点描述 找到线性表中第i-1个结点,修改其指向后继的指针。 (3)时间和空间复杂度分析 时间复杂度O(n) 3.1 ADT描述 ADT LinkList{ 数据对象:D={ e | e∈LNode } 数据关系:R1={e_i,e_(i+1) | e∈LNode ,e 0} 基本操作: GreateList_L(L, n) 操作结果:构造了一个长为n的数据链表 ListDelete_L(L, i, e) 初始条件:链表L已存在而且非空 操作结果:删除L的第i个数据,并且用e返回其值 ListInsert_L(L, i, e) 初始条件:链表L已存在 操作结果: 在L的第i个位置插入数据e GetElem(L, i, e) 初始条件:链表L已存在 操作结果:用e返回L中的第i个数据 }ADT LinkList 4.1 详细设计 4.1.1数据存储结构设计 采用单链式线性表实现 4.1.2 主要伪代码 Status GetElem(LinkList L, int i, ElemType *e) { int j=0; in

文档评论(0)

183****9774 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档