数据结构06题稿.ppt

  1. 1、本文档共115页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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 ^ ^ ^ ^ ^ ^ ^ ^ 先序序列中序序列 左子树 由二叉树的后序和中序序列建树 二叉树的后序序列 二叉树的中序序列 左子树 左子树 右子树 右子树 根 根 左子树 根 左子树的后序序列 左子树的中序序列 根 左子树的左子树 左子树的右子树 中序遍历:B D C E A F H G 后序遍历:D E C B H G F A (B D C E) ( F H G) A B F (D C E) ( H G) C D E G H A B B F F 练习 已知一棵二叉树的中序序列和后序序列分别是BDCEAFHG 和 DECBHGFA,请画出这棵二叉树。 1、在一棵非空二叉树的中序遍历序列中,根结点的右边( )。 A、只有右子树上的所有结点 B、只有右子树上的部分结点 C、只有左子树上的所有结点 D、只有左子树上的部分结点 2、任何一棵二叉树的叶结点在先序、中序和后序遍历中的相对次序( )。 A、不发生改变 B、发生改变 C、不能确定 D、以上都不对 练习 A A 结论:若某一节点有左孩子,那么该结点在中序遍历二叉树所形成 的序列中,其前驱是左孩子的最右子孙 中序遍历序列:DGBAECIHJKF 重要结论2 问题: 若某一节点无左孩子,其中序遍历前驱是? 二叉链表空间效率这么低,能否利用这些空闲区存放有用的信息或线索? ——可以用它来存放当前结点的直接前驱和后继等线索,以加快查找速度。 思考 线索化二叉树 在n个结点的二叉链表中,有n+1个空指针域 A B C D E F G ^ ^ ^ ^ ^ ^ ^ ^ 普通二叉树只能找到结点的左右孩子信息,而该结点的直接前驱和直接后继只能在遍历过程中获得 若将遍历后对应的有关前驱和后继预存起来,则从第一个结点开始就能很快“顺藤摸瓜”而遍历整个树 例如中序遍历结果:B D C E A F H G,实际上已将二叉树转为线性排列,显然具有唯一前驱和唯一后继! 可能是根、或最左(右)叶子 线索化二叉树 两种解决方法 增加两个域:fwd和bwd; 利用空链域(n+1个空链域) 如何保存这类信息? 线索化二叉树 1)若结点有左子树,则lchild指向其左孩子; 否则, lchild指向其直接前驱(即线索); 2)若结点有右子树,则rchild指向其右孩子; 否则, rchild指向其直接后继(即线索) 。 为了避免混淆,增加两个标志域 lchild LTag data RTag rchild 线索化二叉树 LTag :若 LTag=0, lchild域指向左孩子; 若 LTag=1, lchild域指向其前驱。 RTag :若 RTag=0, rchild域指向右孩子; 若 RTag=1, rchild域指向其后继。 lchild LTag data RTag rchild 线索化二叉树 A B C D E A B D C E T 先序序列:ABCDE 0 0 0 0 1 1 1 1 ^ 1 1 lchild LTag data RTag rchild 先序线索二叉树 LTag=0, lchild域指向左孩子 LTag=1, lchild域指向其前驱 RTag=0, rchild域指向右孩子 RTag=1, rchild域指向其后继 A B C D E A B D C E T 中序序列:BCAED 0 0 0 0 1 1 1 1 ^ 1 1 ^ lchild LTag data RTag rchild 中序线索二叉树 lchild LTag data RTag rchild A B C D E A B D C E T 后序序列:CBEDA 0 0 0 0 1 1 1 1 1 1 ^ 后序线索二叉树 线索:指向结点前驱和后继的指针 线索链表:加上线索二

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档