- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 * 页 仅知二叉树的前序序列“abcdefg” 不能唯一确定一棵二叉树; 由二叉树的前序和中序遍历序列构造树 如果同时已知二叉树的中序序列“cbdaegf”,则会如何? 二叉树的前序序列 二叉树的中序序列 左子树 左子树 右子树 右子树 根 根 二叉树的后序序列 左子树 右子树 根 第 * 页 a b c d e f g c b d a e g f a a b b c c d d e e f f g g a b c d e f g ^ ^ ^ ^ ^ ^ ^ ^ 前序遍历序列 中序遍历序列 第 * 页 前序遍历序列{ABHFDECKG} 中序遍历序列{HBDFAEKCG} 第 * 页 树、森林与二叉树 的转换(自学内容) 第 * 页 树转化成二叉树的规则 步骤: (a)在树中同层兄弟间加一连线 (蓝色实线); (b)对树中每个结点仅保留其与 长子(左边第一个孩子)的连线; 擦去其与其它孩子的连线(a图中 黑色虚线); (c)以树(或子树)的根作为轴 心,将所有的水平连线顺时针 旋转45度,即可得到与该树完 全等价的一棵二叉树。 转换得到的二叉树的根结点没有 右子树 第 * 页 要点:将森林中其它的树的根结点看成是第一棵树的根结点的兄弟,则可以将森林转换为二叉树; 转换过程与树转换为二叉树的过程基本相似,区别如下: (1)最开始应当将森林中每棵树的根结点间加一连线; (2)转换后的二叉树形态不唯一,取决于森林中各树的初始位置 (3)森林转换成二叉树后根结点有右子树。 森林转换为二叉树的规则 第 * 页 将二叉树还原为树或森林的规则 (1)若某结点是其双亲结点的左孩子,则将该结点的右孩子、右孙子、右重孙子……都与该结点的双亲用连线连起来; (2)删去所有右孩子、右孙子……与其现在双亲结点的连线; (3)将所有结点以其现在新的连接线所连接的结点为轴心,逆时针旋转45度。 第 * 页 性质 3 (叶子结点与度为2的结点在数量上的关系):对任何一棵二叉树,若它含有n0 个叶子结点、n2 个度为 2 的结点,则必存在关系式:n0 = n2+1。 证明: 设 二叉树上结点总数 n = n0 + n1 + n2 又 二叉树上分支总数 b = n1+2n2 而 b = n-1 = n0 + n1 + n2 - 1 由此, n0 = n2 + 1 。 第 * 页 两类特殊的二叉树: 满二叉树:深度为k且含有2k-1个结点的二叉树。 完全二叉树:树中所含的 n 个结点和深度相同的满二叉树中编号为 1 至 n 的结点一一对应。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 第 * 页 示例(完全二叉树和非完全二叉树) 完全二叉树 非完全二叉树 同层满二叉树 第 * 页 满二叉树和完全二叉树有什么区别? 答:满二叉树是叶子一个也不少的树(所有k层的结点全满),而完全二叉树虽然前k-1层是满的,但最后一层(第k层)却允许在右边缺少连续若干个结点。满二叉树是完全二叉树的一个特例:满二叉树一定是完全二叉树,而完全二叉树不一定是满二叉树。 第 * 页 性质4(完全二叉树的深度与结点总数的关系): 具有 n 个结点的完全二叉树的深度为 ?log2n? +1 。 证明: 设完全二叉树的深度为 k , 则根据第二条性质得 2k-1 -1 n ≤ 2k -1 可转换为: 2k-1 ≤ n 2k 即 k-1 ≤ log2 n k 因为 k 只能是整数,因此, k = ?log2n? + 1 。 第 * 页 性质 5: 若对含 n 个结点的完全二叉树从上到下且从左至右进行 1 至 n 的编号,则对完全二叉树中任意一个编号为 i (1≤i≤n)的结点:(1) 若 i=1,则该结点是二叉树的根结点,无双亲,否则,编号为 ?i/2? 的结点为其双亲结点;(2) 若 2in,则该结点无左孩子, 否则,编号为 2i 的结点为其左孩子结点;(3) 若 2i+1n,则该结点无右孩子结点, 否则,编号为2i+1 的结点为其右孩子结点。 第 * 页 二叉树的存储结构 二、链式存储结构 一、顺序存储结构 第 * 页 完全二叉树 二叉树的顺序存储结构(示例1) 注:结点从1开始编号时,从数组单元1开始存放数据(数组单元0不存放数据),编号为i的结点,其双亲结点(若存在)所在的数组单元为?i/2?,左孩子结点(若存在)所在的数组单元为2i,右孩子结点(若存在)的数组单元为2i+1。 存储方式: 按二叉树的结点“自上而下、从左至右”编号,
文档评论(0)