设一颗二叉树的中序遍历结果是DBEAFC,前序遍历结果是ABDECF,则后序便利结果是什么?
后序遍历结果是DEBFCA。
前序遍历得知A是根节点,在中序遍历中,A讲节点非分根节点A左右子树:即
A
DBE FC
下面看DBE序列,在前序遍历中,这三个的先后顺序是BDE,所以这三个节点中B是根节点,根据中序遍历结果,该三个节点顺序是DBE,所以B讲着三个节点划分为左右节点:结果如下:
A
B FC
D E
下面再看FC两个节点,他们在前序遍历结果中的结果是CF,所以C是这两个节点中的根节点,再根据他们在中序遍历结果中的顺序FC,则F将他们本身划分为左子树(此时为空)和右子树C,则二叉树示意图如下:
A
B C
D E 空 F
扩展资料:
树的3种最重要的遍历方式分别称为前序遍历、中序遍历和后序遍历。以这3种方式遍历一棵树时,若按访问结点的先后次序将结点排列起来,就可分别得到树中所有结点的前序列表、中序列表和后序列表。相应的结点次序分别称为结点的前序、中序和后序。
如果T是一棵空树,那么对T进行前序遍历、中序遍历和后序遍历都是空操作,得到的列表为空表。
如果T是一棵单结点树,那么对T进行前序遍历、中序遍历和后序遍历根,树根的子树从左到右依次为T1,T2,..,Tk,那么有:
对T进行前序遍历是先访问树根n,然后依次前序遍历T1,T2,..,Tk。
对T进行中序遍历是先中序遍历T1,然后访问树根n,接着依次对T2,T2,..,Tk进行中序遍历。
对T进行后序遍历是先依次对T1,T2,..,Tk进行后序遍历,最后访问树根n。
参考资料来源:百度百科-遍历
前序遍历得知A是根节点,在中序遍历中,A讲节点非分根节点A左右子树:即
A
DBE FC
下面看DBE序列,在前序遍历中,这三个的先后顺序是BDE,所以这三个节点中B是根节点,根据中序遍历结果,该三个节点顺序是DBE,所以B讲着三个节点划分为左右节点:结果如下:
A
B FC
D E
下面再看FC两个节点,他们在前序遍历结果中的结果是CF,所以C是这两个节点中的根节点,再根据他们在中序遍历结果中的顺序FC,则F将他们本身划分为左子树(此时为空)和右子树C,则二叉树示意图如下:
A
B C
D E 空 F
后续遍历结果就不需要我写了吧,嘿嘿,望采纳
2013-03-30
(因为前序遍历结果是ABDECF,知道根结点为A,中序遍历结果是DBEAFC,知道DBE为左子树,FC为右子树,再推出DE是B的叶子结点,F是C的叶子结点。前序遍历结果是ABDECF,知道D是B的左叶子结点,E是B的右边叶子结点。这样就能画出二叉树了,后序遍历自己就能写了啊)清楚以下概念:
中序遍历:先遍历左子树,然后访问根结点,最后遍历右子树
前序遍历:先访问根结点,然后遍历左子树,最后遍历右子树
后序遍历:先遍历左子树,然后遍历右子树,最后访问根结点
例题可以参照百度文库
http://baike.baidu.com/view/549587.htm
能看明白吗?个人觉得知道概念就好解决了,画出二叉树的图
2013-03-30
前序遍历结果是ABDECF
中序遍历结果是DBEAFC
1.先看前序,那么最先遍历的就是A,因为是前根遍历,所以A就是最根的结点,也就是所说的root结点。(这要看懂,这个不懂理解就有点恼火)
2.先在确立了一个根A.。那么现在去看中序遍历。中序是根是在遍历完左右子树再访问的根,所以DBE是A的左子树的结点。FC是A的右子树。
3.对于左子树的DBE结点。那么哪一个是根结点呢,现在就和步骤1一样。看前根中DBE中的哪个是最先出现的,那么它就是这三个结点的根。那么得出是B.然后找出B的左右子树分别是D和E。如此循环。就可以得出结果了。不明白再问。