首先理解概念:前序遍历:访问根结点的操作发生在遍历其左右子树之前。中序遍历:访问根结点的操作发生在遍历其左右子树之中(间)。后序遍历:访问根结点的操作发生在遍历其左右子树之后。来看你的题目:1.由后序遍历5、4、2、6、8、9、7、3、1可知根为12.在中序遍历4、5、2、1、6、3、8、7、9中找到1,可知(左)452-1-63879(右)对左右支分别重复上述步骤,即在后序遍历中观察452的相对位置可知2为根,则有45-2-空在后序遍历中观察63879的相对位置可知3为根,则有6-3-879……由此可得出树的结构为------------------------------1---------2L
3R----4L 空 6L 7R-空 5R 空 空 8L 9R图中L表示左,R表示右,用空格区分位置。
步骤:后序最后一个值为1,则表示根节点为1。查看中序由1,分割成 452 和 63879 两棵子树。 对“左子树”---中序452和后序542,得到根节点为2。中序452表明45组成2的左子树,根节点为4,5为4的右子树。对“右子树”---中序63879和后序68973,得到根节点为3。6为左子树,右子树为--中序879和后序897。所以根节点为7,左子树为8,右子树为9。所以最后是 1 / \ 2 3 / / \ 4 6 7 \ / \ 5 8 9
分享到:
相关推荐
数据结构C++二叉链表的先序遍历、中序遍历和后序遍历实现
已知中序遍历和后序遍历,求前序遍历。有比较详尽的中文注释。
已知二叉树的中序和先序遍历可以唯一确定后序遍历、已知中序和后序遍历可以唯一确定先序遍历,但已知先序和后序,却不一定能唯一确定中序遍历。现要求根据输入的中序遍历结果及先序遍历结果,要求输出其后序遍历结果...
二叉树已知后序和中序遍历求前序遍历,C++编写已通过编译
C语言,数据结构课程,知道中序和后序遍历,画二叉树和写出前序遍历。
根据先序与中序遍历结果建立二叉树 输入为: 第一行:二叉树的先序遍历结果 第二行:二叉树的中序遍历结果 例如: ①输入aa则返回的指针指向的二叉树应该就是仅有一个节点,值为a. ②输入123213则返回的指针指向...
已知二叉树的前序和中序遍历,打印后序遍历,采用二叉树的非递归算法,分享给大家~~
二叉树已知前序和中序遍历,求后序遍历,C++代码已编译通过,可直接运行
C++数据结构已知二叉树的前序遍历与中序遍历结果求后序遍历.pdf
数据结构 C/C++ 数据结构已知二叉树的前序遍历与中序遍历结果求后序遍历
如果给出了遍历二叉树的前序序列和中序序列,则可以构造出唯一的一棵二叉树。试编写实现上述功能的程序。 [基本要求] 已知一棵二叉树的前序和中序序列,试设计完成下列任务的一个算法: (1)构造一棵二叉树...
二叉搜索树(排序二叉树),树的遍历(前序、中序、后序)【数据结构和算法入门7】
C++源码,可在VC6.0环境下直接运行,核心代码非常经典,不到10行且易懂。
1、深度优先遍历 2、广度优先遍历 3、求深度 4、已知二叉树前序中序,还原二叉树 5、已知前序和中序,求后序
1.已知一棵二叉树的中序遍历结点排列为DGBAECHIF,后序遍历结点排列为GDBEIHFCA,(也可以换成已知 中序和先序遍历的内容) (1)试画出该二叉树; (2)试写出先序遍历排列;(写出没有给出的那种遍历序列) (3)...
二叉树遍历分为三种:前序、中序、后序,其中序遍历最为重要。为啥叫这个名字?是根据根节点的顺序命名的。 比如上图正常的一个满节点,A:根节点、B:左节点、C:右节点,前序顺序是ABC(根节点排最先,然后同级先...
本篇文章是对用C++实现链式二叉树(用非递归方式先序,中序,后序遍历二叉树)的方法进行了详细的分析介绍,需要的朋友参考下
js代码-二叉树迭代法后序遍历
遍历算法(递归与非递归,基于对列或堆栈)统计二叉树中叶子结点的个数,统计二叉树中结点的总数,求二叉树的深度(后序遍历),求二叉树的宽度(具有结点数最多的层上的结点数,已知二叉树中序遍历和后序遍历序列,...
3.假设一棵二叉树的中序序列为DCBGEAHFIJK和后序序列为DCEGBFHKJIA,则先序序列为: (7) 。 4.深度为k的完全二叉树至少有 (8) 个结点;至多有 (9) 结点。 5.在一棵二叉树中,度为1的结点有40个,总的结点数为99...