- 1、本文档共59页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
何谓线索二叉树? 线索链表的遍历算法 如何建立线索链表? A B C D E F G A B C E D F G 6.7 树、森林与二叉树之间的转换 【例】一般树转换成二叉树 【练习】 6.7 树、森林与二叉树之间的转换 A B C D E F H G B F G H A E C D 2. 森林转换成二叉树 只要给森林增设一个虚拟根结点,使森林中各树的根都作为该虚拟根的孩子,把森林变成一棵树,用上述方法将其转换成二叉树。必要的话,转换后可以删去虚拟根结点。 6.7 树、森林与二叉树之间的转换 A B C D E F G H I J 6.7 树、森林与二叉树之间的转换 【例】森林转换成二叉树 6.7 树、森林与二叉树之间的转换 【例】森林转换成二叉树 A B C D E F G H I J A B E C F G H I J D 因为树转换成二叉树后根结点没有右子树,所以,删去虚拟根之后仍是一棵二叉树。 A B C D E F G H I J A B C D E F G H I J A B C D E F G H I J 树与二叉树对应 森林与二叉树对应 树根相连 森林与二叉树的对应关系示例 【方法2】 【练习】森林转换成二叉树 6.7 树、森林与二叉树之间的转换 A B C E F G H J I 【练习答案】森林转换成二叉树 6.7 树、森林与二叉树之间的转换 A B C E F G H J I A B C E F G H I J 因为树转换成二叉树后根结点没有右子树,故只有根结点没有右子树的二叉树才能转换成一棵树。 转换步骤如下: (1) 使二叉树B的根作为转换后树T的根; (2) 对于所有已经转换过的结点f和尚未转换过的结点s,反复做下面两步: ① 如果结点s在B中是结点f的左孩子,在T中s作为f的第一个孩子; ② 如果结点s在B中是结点f的右孩子,在T中s作为f的兄弟,即作为f之双亲的另一个孩子,这个孩子紧靠在f的右侧。 3. 二叉树转换成树 6.7 树、森林与二叉树之间的转换 6.7 树、森林与二叉树之间的转换 A B C E D F G A B C D E F G 【例】 只要给二叉树加一个虚根,使原根作虚根的左孩子,用二叉树转换成普通树的方法将其转换成树,再删除虚根即可。 4. 二叉树转换成森林 6.7 树、森林与二叉树之间的转换 6.7 树、森林与二叉树之间的转换 【例】 A B E C F G H I J D 6.7 树、森林与二叉树之间的转换 【例】 A B C D E F G H I J A B E C F G H I J D A B C D E F G H I J A B C D E F G H I J A B C D E F G H I J 二叉树与树对应 二叉树与森林对应 分解 二叉树与森林的对应关系示例 【方法2】 【练习】 求该二叉树对应的森林 6.7 树、森林与二叉树之间的转换 * * 6.5 线索二叉树 遍历二叉树的结果是: 求得结点的一个线性序列。 A B C D E F G H K 【例如】 先序序列: A B C D E F G H K 中序序列: B D C A H G K F E 后序序列: D C B H K G F E A * 6.5 线索二叉树 6.6.1 何谓线索二叉树? 当以二叉链表作为存储结构时,只能找到结点的左、右孩子信息,而不能直接得到结点在任一序列的前驱和后继信息,这种信息只有在遍历的动态过程中才能得到。 如何保存这种在遍历过程中得到的信息呢? * 6.5 线索二叉树 方法一: 在每个结点上增加两个指针域 fwd和bkwd,分别指示结点在任一次序遍历时得到的前驱和后继信息。 显然,这样做使得结构的存储密度大大降低。 方法二: 在有n个结点的二叉链表中必定存在n+1个空链域,利用这些空链域来存放结点的前驱和后继的信息。 * 6.5 线索二叉树 指向该线性序列中的“前驱”和“后继” 的指针,称作“线索” 例如:A B C D E F G H K 与其相应的二叉树,称作 “线索二叉树” 包含 “线索” 的存储结构,称作 “线索链表”
文档评论(0)