有一二叉树,中序遍历为DBAECF,前序遍历为ABDCEF,求后续遍历

作者&投稿:舟戚 (若有异议请与网页底部的电邮联系)
~

先给出结果吧,后序遍历为DBAEFC。解释有些麻烦,尽量能说得清楚一些吧。

前序遍历先访问根节点,然后前序遍历左子树,最后前序遍历右子树,这是一种递归的算法,由于第二步是前序遍历左子树,这样可以设想根节点的左子树还有一左子树,就会再先访问左子树的根节点,再前序遍历。中序遍历先中序遍历左子树,然后访问根节点,最后中序遍历右子树。

我们看到前序遍历的结果为ABDCEF,可以知道根节点是A,再看中序遍历的结果为DBAECF,可以看到根节点A在中间,两个节点DB肯定在根节点的左子树,节点ECF肯定在根节点的右子树。再看前序遍历的结果,根节点A后访问B(所以B肯定是D的根节点),最后是D,所以再看中序遍历(先中序遍历左子树),所以D是B的左子树。右子树部分也类推。很容易看到C是右子树的根节点(前序遍历先访问根节点),然后可推出E是左子树,F是右子树。

画了一幅图片,可能看图好理解一些



先给出结果吧,后序遍历为DBAEFC。解释有些麻烦,尽量能说得清楚一些吧。
前序遍历先访问根节点,然后前序遍历左子树,最后前序遍历右子树,这是一种递归的算法,由于第二步是前序遍历左子树,这样可以设想根节点的左子树还有一左子树,就会再先访问左子树的根节点,再前序遍历。中序遍历先中序遍历左子树,然后访问根节点,最后中序遍历右子树。
我们看到前序遍历的结果为ABDCEF,可以知道根节点是A,再看中序遍历的结果为DBAECF,可以看到根节点A在中间,两个节点DB肯定在根节点的左子树,节点ECF肯定在根节点的右子树。再看前序遍历的结果,根节点A后访问B(所以B肯定是D的根节点),最后是D,所以再看中序遍历(先中序遍历左子树),所以D是B的左子树。右子树部分也类推。很容易看到C是右子树的根节点(前序遍历先访问根节点),然后可推出E是左子树,F是右子树。
画了一幅图片,可能看图好理解一些


已知一棵二叉树前序遍历和中序遍历分别是什么?
已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历是DGEBHFCA。前序遍历的第一个节点为根节点,由前序遍历可知,A为根节点。中序遍历的根节点前面的节点均为左子树的节点,所以左子树上的节点为DBGE。去掉根节点和左子树节点,右子数节点为CHF。前序遍历的第二个节...

一棵二叉树的先序遍历序列为ABCDEF,中序遍历结果为CBAEDF,则后序遍历...
【答案】:A 二叉树的先序遍历序列和中序遍历序列一起可以确定这棵二叉树的形态。本题的解题思路是先根据题设确定这棵二叉树的形态,然后再用后序遍历此二叉树,得到后序遍历序列。根据先序遍历序列,A是二叉树的根结点。根据中序遍历序列,则二叉树的形态一定如图4—9所示。9考虑A的左子树。根据二...

在一棵二叉树先序遍历、中序遍历、后序遍历所产生序列中,所有叶子结 ...
遍历就是按照某条路径访问树中每个结点,使每个结点被访问仅且一次。(1)先序遍历(D L R):访问根结点;先序遍历左子树;先序遍历右子树。(2)中序遍历(L D R):中序遍历左子树;访问根结点;中序遍历右子树。(3)后序遍历(L R D):后序遍历左子树;后序遍历右子树;访问根结点。...

中序遍历一棵二叉排序树的结点就可得到排好序的结点序列。这句话对吗...
对的,中序遍历一棵二叉排序树的结点就可得到排好序的结点序列这句话是没有错误的,因为二叉排序树的根节点大于左子树,小于右子树,然后使用中序遍历算法,中序遍历算法先遍历左子树,然后是根节点,然后是右子树。根据遍历的特性,所有的先遍历的结点,一定是小于后边遍历的结点,所以说中序遍历一...

二叉树的先序,中序,后序遍历是?
前序遍历就是先遍历根节点,然后遍历左节点,最后是右节点;中序遍历就是先遍历左节点,然后遍历中间的根节点,最后是右节点;后序遍历就是先遍历左节点,然后遍历是右节点,最后是中间的根节点。二叉树的这三种遍历方法,是按照每颗子树的根节点顺序遍历的。

二叉树的前序、中序和后序遍历序列分别是什么?
则该二叉树的前序遍历序列为ABDECF,中序遍历序列为DBEAFC,后序遍历序列为DEBFCA。先序遍历二叉树规则:根-左-右 1、访问根结点;2、先序遍历左子树;3、先序遍历右子树。中序遍历二叉树规则:左-根-右 1、先中序遍历左子树;2、再访问根节点;3、最后访问中序遍历右子树。后序遍历二叉树规则...

设一颗二叉树的中序遍历结果是DBEAFC,前序遍历结果是ABDECF,则后序便利...
结果如下:A B FC D E 下面再看FC两个节点,他们在前序遍历结果中的结果是CF,所以C是这两个节点中的根节点,再根据他们在中序遍历结果中的顺序FC,则F将他们本身划分为左子树(此时为空)和右子树C,则二叉树示意图如下:A B C D E 空 F ...

二叉树前序中序后序口诀
二叉树前序中序后序口诀:前序遍历:根节点—-左子树—-右子树,中序遍历:左子树—-根节点—-右子树,后序遍历:左子树—-右子树—-根节点 先序:是二叉树遍历中的一种,即先访问根结点,然后遍历左子树,后遍历右子树。遍历左、右子树时,先访问根结点,后遍历左子树,后遍历右子树,如果二叉树...

一只一棵二叉树的先序遍历结果为abcdefghi,中序遍历结果为cbafegdhi...
分别称为先序遍历、中序遍历、后续遍历,子树也一样,到一个子树就遍历一次,按照遍历顺序写下去就好,尤其注意根特殊对待(只有一个所以只写一个)。后续遍历是:CBEFDA 依据前序遍历序列可确定根结点为A;再依据中序遍历序列可知其左子树由DBE构成,右子树为FC;又由左子树的前序遍历序列可知其根...

在一棵二叉树的先序遍历、中序遍历、后序遍历所产生的序列中,所有叶子...
【答案】:B B。【解析】根据“根一左一右”,“左一根一右”,“左一右一根”的先序、中序、后序遍历原则,可以知道,在3种遍历所产生的序列中,所有叶子结点的先后顺序是完全相同的。

明溪县13847672971: 若某棵二叉树的后根遍历序列为DBEFCA,中根遍历序列为DBAECF,请画出这棵二叉树 -
符元头孢: 后根遍历:DBEFCA 中根遍历:DBAECF 则还原二叉树如下:

明溪县13847672971: 是的,是已知前序遍历和中序遍历,建立二叉树具体应该怎么办呢 -
符元头孢: =可以采用二分法. 比如说先序遍历是ABDCEF 中序遍历是DBAECF 因为先序是中左右,所以先序遍历第一个必定是根节点,所以根节点是A 因为中序遍历是左中右,所以中序遍历的根节点的左子树必然在根节点前面,右子树必然在后面,也就是说 DB是A的左子树,ECF是右子树.这样就先建立A,然后开始二分. 以左右分别为一种情况,左子树先序是DB,中序是BD,所以B是D的左孩子,然后另一边也是一样,就可以得出C是A的右孩子,然后再以C二分.得出C的左孩子是E,右孩子是F,所以后续遍历就是DBEFCA. 无论如何复杂的二叉树都是用这种方法、

明溪县13847672971: 一颗二叉树的先序遍历序列为:ABDCEFG,中遍历为:DBAECF,请画出这棵二叉树的逻辑结构,并给写出其后序遍历序列 -
符元头孢: 结构图: AB C D E FG 后序遍历:DBEGFCA

明溪县13847672971: 设一棵二叉树的中序遍历结果为DBEAFC,前序遍历的结果为ABDECF,则后序遍历结果为 -
符元头孢: 依据前序遍历序列可确定根结点为A;再依据中序遍历序列可知其左子树由DBE构成,右子树为FC;又由左子树的前序遍历序列可知其根结点为B,由中序遍历序列可知其左子树为D,右子树由E构成...... 同理推算FC的排列顺序,在草稿纸上画出树的结构,再自己写写后序遍历吧!

明溪县13847672971: 遍历序列的基本定义是什么?
符元头孢: 2.遍历序列⑴中序序列中序遍历二叉树时,对结点的访问次序为中序序列【例】中序遍历上图所示的二叉树时,得到的中序序列为:DBAECF⑵先序序列先序遍历二叉树时,对结点的访问次序为先序序列【例】先序遍历上图所示的二叉树时,得到的先序序列为:ABDCEF⑶后序序列后序遍历二叉树时,对结点的访问次序为后序序列【例】后序遍历上图所示的二叉树时,得到的后序序列为:DBEFCA遍历注意⑴在搜索路线中,若访问结点均是第一次经过结点时进行的,则是前序遍历;若访问结点均是在第二次(或第三次)经过结点时进行的,则是中序遍历(或后序遍历)

明溪县13847672971: 已知二叉树的中序遍历是DBEAFC.前序遍历是ABDECF.后序遍历怎么算? -
符元头孢: 先理解前序和中序的涵义: 前序遍历首先访问根结点然后遍历左子树,最后遍历右子树.在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树. 中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树.在遍历左...

明溪县13847672971: 设一颗二叉树的中序遍历结果是DBEAFC,前序遍历结果是ABDECF,则后序便利结果是什么?
符元头孢: 这种题就是根据这两个序列画出对应的树. 前序遍历结果是ABDECF 中序遍历结果是DBEAFC 1.先看前序,那么最先遍历的就是A,因为是前根遍历,所以A就是最根的结点,也就是所说的root结点.(这要看懂,这个不懂理解就有点恼火) 2.先在确立了一个根A..那么现在去看中序遍历.中序是根是在遍历完左右子树再访问的根,所以DBE是A的左子树的结点.FC是A的右子树. 3.对于左子树的DBE结点.那么哪一个是根结点呢,现在就和步骤1一样.看前根中DBE中的哪个是最先出现的,那么它就是这三个结点的根.那么得出是B.然后找出B的左右子树分别是D和E.如此循环.就可以得出结果了.不明白再问.

明溪县13847672971: 根据下图给出的二叉树,求出先序遍历、中序遍历和后序遍历的结点序列 a / \ b c / / d e \ f -
符元头孢: 先序遍历abdcef 中序遍历dbaefc 后序遍历dbfeca 其实这种问题的解法很简单,你绕着二叉树从根节点左边画一条线绕过整个2叉树然后回到根节点,先序遍历就是线经过左边的时候的顺序,中序遍历就是线经过下面的时候的顺序,后续遍历就是经过右边的时候的顺序,掌握方法了终身都不用问别人了!见下图

明溪县13847672971: 设一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为多少? -
符元头孢: 其实很简单,看前序遍历结果,A肯定是树根,那么从中绪来看,以A为中点,可以分为左右子树,依次类推,结合前、中序的队列,最后可得其后续遍历:DEBFCA

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网