您现在的位置:小学生自学网>> 信息>> 学习电脑

由二叉树的两种遍历求第三种的方法

作者: 来源: 发布时间:2011年04月11日 点击数:
 

遍历二叉树有四种方法:前根、中根、后根、层次。信息学初赛一般考察前三种遍历方法。其中类似知前根、中根求后根,或者知道中根、后根求前根的题目比较多。这里给出几道题:


1.已知某二叉树的后序遍历是dabec,中序遍历序列是debac,求他的前序遍历序列。答案cedba.
2.(NOIP2004)15.二叉树T,已知其前序遍历序列为1 2 4 3 5 7 6,中序遍历序列为4 2 1 5 7 3 6,求后序遍历序列。
3.1.已知某二叉树的中序遍历是dbeafc,后序遍历序列是debfca,求他的前序遍历序列。
4、已知二叉树前序12453,中序42513。求后序。答案(45231)


这样的题怎么解?我们首先得牢记三种递归规则:
1、前根遍历:根—左—右
2、中根遍历:左—根—右
2、后根遍历:左—右—根
从规则可以看出:前根序列的第一个值肯定是整个二叉树的根。后根序列的最后一个值肯定是整个二叉树的根。而知道中根序列和前、后根的一个序列后,必然中根序列将分以根分为两个部分:左子树和右子树。这样,在子树里面找到做子树根的那个值,继续分左右子树,这样下去即可确定二叉树的形态。同时,我们可以看到,如果只知道前、后根遍历。不知道中根,则二叉树形态无法唯一确定。
这样,我们来解答第二道题:前序为1243576中序为4215736.由前序可得1为二叉树的根。将中序分为左右两子树。左子树为42,右子树为5736。左子树前序序列中2在4的前面,中序2在4的后面,可知2为这个左子树的根,4为这个左子树的左节点。右子树中序5736,前序3576,可得3为右子树的根,以3为根的子树左边为57,右边为节点6。57这个子树5为根,7为右节点。这样我们就得到了这个二叉树的结构图形。后序遍历为4275631。
这样,我们应该可以解答上面的三道题了。