网站大量收购闲置独家精品文档,联系QQ:2885784924

数据结构树的应用-树和二叉树的转换.doc

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

数据结构与算法课程设计 说 明 书 ? 学 院、系: 软件学院 专 业: 软件工程 班 级: 学 生 姓 名: 学 号: 设 计 题 目: 树的应用 起 迄 日 期: 2015年1月12日- 2015年1月29日 指 导 教 师: ? ? ?2015 年1月 29 日 一、需求分析 1.设计内容及设计要求 A.设计内容: (1)建立一棵树; (2)将树转换成二叉树; (3)实现二叉树的前序、中序、后序的递归和非递归遍历算法。 B.设计要求: (1) 符合课题要求,实现相应功能; (2) 要求界面友好美观,操作方便易行; (3) 注意程序的实用性、安全性; 2.本演示程序中,元素为单个字符,以空格表示空树(即结点为空),以回车符作为输入结束标志,树采用孩子兄弟表示法,二叉树采用二叉链表表示法。在真实的运行过程中,由用户手动输入待创建树的含有空格的先根次序序列,并按回车结束,程序会将其转化为其对应的二叉树,然后对二叉树进行先序、中序、后序的递归及非递归遍历以及层序遍历,然后显示转化后二叉树的高度和总结点数,以验证所创建的二叉树是否正确,最后,销毁创建的树和二叉树,程序结束。 3.演示程序以用户和计算机对话方式执行,即在计算机终端(屏幕)上显示“提示信息”之后,由用户在键盘上输入演示程序规定的运算命令,相应的输入数据和运算结果显示在其后。 4.为了美观,程序的输出结果采用了分块显示的模式,由虚线及标题隔开,便于用户检查和验证。 5.测试数据 如图,给出一棵树,若屏幕上显示如下信息: -请按树的先根次序输入序列,如有空子树,用空格填充,完成后输入回车确认 此时,你应当输入:(↙表示回车确认) ABE F C DGHI J K ↙ 提示:为方便确认输入了几个空格,用星号’*’表示输入序列中的空格,则序列如下 ABE*F**C*DGHI*J*K******↙(不是真实的输入序列,供计算需输入空格个数时用) 这时,建好的树的先根和后根次序序列如下: 树的先根序列 A B E F C D G H I J K 树的后根序列 E F B C I J K H G D A 由树和二叉树的转换关系知,二叉树的先序和中序遍历所得序列分别与树的先根和后根遍历所得序列相同,据此验证转化是否正确。二叉树的先序和中序遍历序列如下: 二叉树先序序列 A B E F C D G H I J K 二叉树中序序列 E F B C I J K H G D A 概要设计 为了实现上述程序功能,树采用孩子兄弟表示法,二叉树采用二叉链表表示法。为此,需要两个抽象数据类型,树和二叉树的抽象数据类型。 1.树的抽象数据类型定义 ADT Tree{? ?数据对象D:D是具有相同特性的数据元素的集合。?? 数据关系R:若D为空集,则称为空树;? ???????若D仅含有一个数据元素,则R为空集,否则R={H},H是如下二元关系:? ? (1)在D中存在唯一的称为根的数据元素root,它在关系H下无前驱;?? (2)若D-{root}≠Φ,则存在D-{root}的一个划分D1,D2,D3,??,Dm(m0), 对于任意j≠k(1≤j,k≤m)有Dj∩Dk=Φ,且对任意的i(1≤i≤m), 唯一存在数据元素xi∈Di有root,xi∈H; (3)对应于D-{root}的划分,H-{root,xi,?,root,xm}有唯一的一个划分 H1,H2,?,Hm(m0),对任意j≠k(1≤j,k≤m)有Hj∩Hk=Φ,且对任意i (1≤i≤m),Hi是Di上的二元关系,(Di,{Hi})是一棵符合本定义的树, 称为根root的子树。? ?基本操作P:? InitTree(T);? 操作结果:构造空树T。? DestroyTree(T);? 初始条件:树T存在。? 操作结果:销毁树T。? CreateTree(T,definition);? 初始条件:definition给出树T的定义。? 操作结果:按definition构造树T。? Clea

文档评论(0)

店小二 + 关注
实名认证
内容提供者

包含各种材料

1亿VIP精品文档

相关文档