一个二叉树的前序遍历结果是ACFEKDBHJI,中序遍历结果是FCKEABDHJI,那么后序遍历结果是( )。

admin2017-11-17  38

问题 一个二叉树的前序遍历结果是ACFEKDBHJI,中序遍历结果是FCKEABDHJI,那么后序遍历结果是(    )。

选项 A、IJHBDKEFCA
B、FKECBIJHDA
C、EKCFIJHDBA
D、ABDHJIFCKE

答案B

解析 二叉树有三种遍历顺序,分别为前序遍历、中序遍历和后序遍历。前序遍历顺序:访问根节点。遍历左子树,遍历右子树,对左右子树按前面3个步骤继续遍历。中序遍历顺序:遍历左子树,访问根节点,遍历右子树。对左右子树按前面3个步骤继续遍历。后序遍历顺序:遍历左子树,遍历右子树,访问根节点,对左右子树按前面3个步骤继续遍历。不管哪种方式遍历,左子树先遍历,右子树后遣历,只是根节点的访问时机不同,对左右子树的遍历采用同样的规则,这在计算机中称为递归。题目中根据前序遍历结果知道二叉树的根节点是A,根据中序遍历结果知道FCKE是A的左子树的节点,BDHJI是A的右子树的节点,A的左子树FCKE在前序遍历结果中是CFEK,我们得知C是A的左子树的根节点,F是C的左子树节点,KE是C的右子树节点,而KE在前序遍历结果中是EK,因此我们知道E是C的右子树根节点,K是E的左子树节点,因此A和它的左子树如下图1;A的右子树节点BDHJI,前序遍历结果是DBHJI,则D是A的右子树的根节点,根据中序遍历结果BDKJI,B是D的左子树,HJI是D的右子树,依此类推,H是D的右子树根节点,JI是H的右子树节点,J是H的右子树根节点,I是J的右子树节点。至此整个二叉树的结构已经出来了,如下图2,它的后序遍历结果是FKECBIJHDA,答案是B项。
转载请注明原文地址:https://kaotiyun.com/show/3Oqp777K
0

最新回复(0)