数据结构课设电子版部分参考模版技术总结.doc

数据结构课设电子版部分参考模版技术总结.doc

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
沈阳航空航天大学课程设计报告 PAGE \* MERGEFORMAT- 31 - 目 录  TOC \o 1-3 \h \z \u  HYPERLINK \l _Toc408567983 1 需求分析  PAGEREF _Toc408567983 \h - 1 -  HYPERLINK \l _Toc408567984 2 系统设计  PAGEREF _Toc408567984 \h - 2 -  HYPERLINK \l _Toc408567985 2.1 数据结构设计  PAGEREF _Toc408567985 \h - 2 -  HYPERLINK \l _Toc408567986 2.2 函数设计  PAGEREF _Toc408567986 \h - 2 -  HYPERLINK \l _Toc408567987 2.3 关键流程  PAGEREF _Toc408567987 \h - 3 -  HYPERLINK \l _Toc408567988 2.3.1 系统主流程  PAGEREF _Toc408567988 \h - 3 -  HYPERLINK \l _Toc408567989 2.3.2 查找函数流程  PAGEREF _Toc408567989 \h - 4 -  HYPERLINK \l _Toc408567990 2.3.3 插入函数流程  PAGEREF _Toc408567990 \h - 4 -  HYPERLINK \l _Toc408567991 3 调试分析  PAGEREF _Toc408567991 \h - 8 -  HYPERLINK \l _Toc408567992 4 测试及运行结果  PAGEREF _Toc408567992 \h - 9 -  HYPERLINK \l _Toc408567993 参考文献  PAGEREF _Toc408567993 \h - 10 -  HYPERLINK \l _Toc408567994 附 录  PAGEREF _Toc408567994 \h - 11 -  沈阳航空航天大学课程设计报告  KEYWORDS \* MERGEFORMAT  1 需求分析 2-3树不是一种二叉树,但他的形状满足以下性质: (1)一个节点包含一个或两个键值 (2)每个内部节点有两个子节点(如果它有一个键值)或三个子节点(如果它有两个键值) (3)所有叶节点都在树结构的同一层,因此树的高度总是平衡的。 对于每个结点, 左子树中所有后继结点的值都小于第一个键的值, 而其中间子树中所有结点的值都大于或等于第一个键的值。如果结点有右子树的话( 相应地, 结点存储两个键值) , 那么其中间子树中所有后继结点的值都小于第二个键的值, 而其右子树中所有后继结点的值都大于或等于第二个键的值。同时,同一层的键值从左到右增大。 2-3树的查找方法与二分查找树相似,从根节点出发,如果在根节点找到查找值则查找成功返回,否则根据节点键的规则递归地查找下去,直到找到或返回失败。 在2-3树中插入新值时并不为其开辟一个新的叶子节点来存储,也就是说,2-3树不是向下生长的。插入算法首先找到一个合适的叶子节点来存放该值,使树的性质不被破坏。如果该叶子节点只包含一个值(每个节点都最多有两个值),则简单将该值放入叶子节点即可。如果叶子结点本身已经包含两个值了,则需要为前加入的叶子开辟新的空间。设节点L为插入节点,但是已经满了,也就是,这个节点因为包含了三个值,所以必须进行分裂,设新分裂出来的节点为L’,则L将存储这三个值中最小的那个值,而L’则存储这三个值中最大的那个。处于中间的值将得到提升,作为插入值晋升到父节点去。如果父节点只包含一个键值,该值直接放入节点即可,否则,同样的“分裂-晋升”过程将在该父节点进行,一直递归到根节点为止。2-3的插入实现中利用了一个函数split,它接收被插入节点的指针和插入的数据,并将指向L指针和被往上传的值通过引用传回来。当插入结点已满时便启用这个函数。 从2-3树删除一个节点,有三种可能情况需要考虑:最简单的情况是,如果删除的值存储在有两个键值的节点上,直接删除该值并不影响树的性质与结构。如果被删除的值所在的节点只有它一个键值,被删除后该节点将为空,因此通过向兄弟节点借一个记录,并修改父节点来解决。如果兄弟节点不够借,则需要合并相邻节点,并影

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档