产生三种遍历方式的结点列表的方法.pptVIP

产生三种遍历方式的结点列表的方法.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
产生三种遍历方式的结点列表的方法

产生三种遍历方式的结点列表的方法 从根结点出发,依逆时针方向沿树的外缘绕行,绕行途中可能多次通过同一点。如果按第一次经过的时间次序将各结点列表,就得到先序列表;如果按最后一次经过的时间次序列表,就得到后序列表;如果将叶子结点在第一次经过时列出,内部结点在第二次经过时列出,则为中序列表。 二叉树的恢复 由先序和中序恢复 1)先根据先序序列确定根结点,根据中序序列左子树和右子树。 2)用上述方法,在分别找出左子树的根及其左、右子树直到结束。 由后序和中序恢复 1)先根据后序序列确定根结点,根据中序序列左子树和右子树。 2)用上述方法,在分别找出左子树的根及其左、右子树直到结束。 线索二叉树 有n个结点的二叉链表中一定有n+1个空指针,因此可以对这些空指针加以利用。 定义 加入了指向在某种遍历次序下的前驱和后继的指针的二叉树称为线索二叉树。 实现 贪心算法 定义 通过一系列的选择来得到问题的一个解,它所做的每一个选择都是在当前状态下某种意义的最好选择,并希望通过每次所做的贪心选择导致最终结果是最优解。 用贪心算法求解的问题应具有的性质 贪心选择性质 即所求问题的整体最优解可以通过一系列的局部最优的选择来达到。 最优子结构性质 若一个问题的最优解包含着它的子问题的最优解,则次问题具有最优子结构性质。这是可否用贪心算法求解的一个关键问题,但并不是绝对。 * A E C B D F 既然是用存储左、右子树的指针的指针域来存储前驱 和后继,那怎么分辨呢? 增加两个标志域 Rchild Rtag data Ltag Lchild 0 Lchild 指向左孩子 Ltag= 1 Lchild 指向前驱 0 Rchild 指向右孩子 Rtag= 1 Rchild 指向后继 将树和森林转换为二叉树 由于二叉树可以用二叉链表表示,为了使一般树也能用二叉链表表示,必须找出树与二叉树之间的关系。 这样,给定一棵树,可以找到唯一的一棵二叉树与之对应。 (1)树转换为二叉树 方法:· 对每个孩子进行从左到右的排序; · 在兄弟之间加一条连线; · 对每个结点,除了左孩子外,去除其与其余孩子之间的联系; · 以根结点为轴心,将整个树顺时针转45度。 I A B C D E F G H (b) A B C D E G H F I (a) 树转换为二叉树 A B E F C D G H I (d) A B C D E F G H I (c) (2)? 森林转换为二叉树 A D C B E F H I G J E F A D C B H I G J A D C B E F H I G J A D C B E F H I G J 方法: · 将各棵树分别转成二叉树; · 把每棵树的根结点用线连起来; · 以第一棵树的根结点作为二叉树的根结点,按顺时针方向旋转。 哈夫曼树及其应用 1、哈夫曼树 树的路径长度的概念: 从一个结点到另一个结点之间的分支数目称为这对结点之间的路径长度。 树的路径长度是从树的根到每一结点的路径长度之和。 1 2 4 5 3 6 7 PL=0+1+1+2+2+2+2=10 树的路径长度用PL表示。 1 2 4 5 3 6 7 PL=0+1+1+2+2+2+2=10 1 2 4 5 3 6 7 PL=0+1+1+2+2+3+3=12 树的路径长度用PL表示。 结点带权的路径长度: 从该结点到树根之间的路径长度与结点上权的乘积。 树的带权路径长度: 树中叶子结点带权路径长度之和。 a b c d 7 5 2 4 WPL=7*2+5*2+2*2+4*2=36 树的带权路径长度记作: 其中:Wk为树中每个叶子结点的权; L k为每个叶子结点到根的路径长度。 a b c d 7 5 2 4 WPL=7*2+5*2+2*2+4*2=36 WPL最小的二叉树就称作最优二叉树或哈夫曼树 。 a b c d 7 5 2 4 WPL=7*2+5*2+2*2+4*2=36 d c a b 2 4 7 5 WPL=7*3+5*3+2*1+4*2=46 a b c d 7 5 2 4 WPL=7*1+5*2+2*3+4*3=35

文档评论(0)

busuanzi + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档