常见的数据结构——树与森林.ppt

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

§6.5 树与二叉树的转换2 6.5.2 二叉树还原为树 * ① 确定根结点。二叉树的根结点即为原树的根结点。 ② 处理根结点。将二叉树中根结点的左孩子确定为原树结构的第一个孩子,该左孩子在二叉树中右孩子及右子孙依次还原为树结构中的兄弟,即其双亲的其余孩子。 ③ 对新画的每个结点依次处理。处理方法如同步骤2。 ④ 反复执行步骤3,直到所有结点均处理完毕。 6.5.2 二叉树还原为树2 一个二叉树还原为树的例子: * 还原 §6.5 树与二叉树的转换3 6.5.3 森林与二叉树的转换 * ①确定根结点。将森林中第一棵树的根结点确定为二叉树的根结点。由于森林中的其他树的根结点视为第一棵树根结点的兄弟,所以其他树的根结点依次为二叉树的右孩子及右子孙。 ② 对森林中的每棵树分别转换即可,方法与树转换为二叉树的方法一致。 6.5.3 森林与二叉树的转换2 将根结点的右孩子和右子孙的连线去掉,变成若干个独立的二叉树,再分别采用二叉树还原为树的方法进行还原即可。 * 本章小结 本章基本内容 第六章 树与森林 学习要点: 树的递归定义和森林的基本概念。 树与森林的存储结构。 树与森林的遍历算法 树、森林与二叉树的相互转换。 * §6.1 树及其相关概念 6.1.1 树的基本概念 1、树的基本概念 * 树(Tree)是一个由n(n≥0)个结点构成的有限集合T。 ① 当n=0时,称T为“空树”。 ② 当n≠0时,T中诸元素满足下述条件: ● 有且仅有一个特定数据元素没有前驱,称其为T的根结点。 ● 除根结点外其余数据元素,又可分为m(0≤m<n)个互不相交的有限集合:T1,T2,…,Tm,每一个集合Ti(0≤i≤m)又是一棵树,称为根的子树。 6.1.1 树的基本概念 1、树的基本概念2 树的特性: * 空树是树的一个特例; 一棵非空树,至少有一个根结点,只有根结点的树为最小树; 在有多个结点的树里,除根结点外,其余结点分属若干个子树,各子树间互不相交; 除根结点外,树中其他结点有且只有一个前驱结点,但可以有零个或多个后继结点。 6.1.1 树的基本概念 1、树的基本概念3 有序树与无序树 如果树T中各子树从左至右按照一定此序排列,不得互换,则称T是有序树(order tree),否则为无序树(unorder tree)。由此可知,二叉树是一种特殊的有序树,但不是一般树的特例。 森林 n(n≥0)棵互不相交的树的集合,称为森林(forest)。 * 6.1.1 树的基本概念2 2、树的表示方法 ① 树形表示法 * ② 文氏图表示法 ③ 凹入表示法 ④ 括弧表示法 (A(B(D)(E(I)(J))(F))(C(G)(H))) 6.1.2 结点及其基本概念 1、结点 结点的度:结点拥有的子树数目,即该结点的后继结点的个数 结点的深度(层次):结点位于树的层次数 树的度:一棵树中各结点度的最大值 树的深度:一棵树中各结点深度的最大值 结点间路径:从树中一个结点到另一个结点之间的分支 路径长度:一条路径上边即连接两个结点的线段的个数称为该路径的长度 * 6.1.2 结点及其基本概念2 * 2、结点分类 (1)根结点:树T中没有前驱的结点称为T的根结点 叶结点:树T中没有后继的点称为T的叶结点 内部结点:树T中既有前驱又有后继的结点称为T的内部结点 (2)分支结点:树T中度数不等于0的结点为T的分支结点 非分支结点:树T中度数等于0的结点称为T的非分支结点 6.1.2 结点及其基本概念3 * 3、结点间关系描述 子结点:树T中一个结点N的所有直接后继,都被称作是该结点N的子结点 父结点:树T中把一个结点称作是它所有后继结点的父结点 兄弟结点:在树T中,具有相同双亲的结点,互称为是兄弟结点 堂兄弟结点:在树T中,双亲在同一层的那些结点,互称为是堂兄弟结点 子孙结点:一个结点的子树中的所有结点,都被称作是该结点的子孙结点 祖先结点:从根结点到某个结点的路径上的所有分支结点,称为该结点的祖先结点 §6.2 树的存储结构 6.2.1 父结点表示法存储 将树中结点按照“由上到下”和“由左到右”的顺序做成一个结点序列,将该序列存放在一维数组Tr当中。Tr中每个元素(结点)都有一个Data域和一个Parent域,其中Data域存放结点数据,而Parent域存放结点的父结点在数组中下标。 * 6.2.2 子结点表示法存储 考虑通过设立结点的Children域来存储树结构信息。当使用链式结构来实现树存储时,就需要将每个结点的孩子信息都存放在存储结点中。此时存

文档评论(0)

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

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

1亿VIP精品文档

相关文档