《大话数据结构》-根据遍历结果反推二叉树

了解二叉树几种遍历方法,可参考二叉树遍历根绝二叉树的遍历性质,可以得到两个性质:
1. 已知前序和中序遍历序列,可以唯一确定一棵二叉树
2. 已知后序和中序遍历序列,可以唯一确定一棵二叉树
3. 已知前序和后序遍历序列,无法确定一棵二叉树

例题1:已知一棵二叉树的前序遍历序列为ABCDEF,中序遍历序列为CBAEDF,请问这棵二叉树的后序遍历结果是多少?
分析: 首先确定根结点,再分别确定左子树和右子树的结点,很显然,根据前序的遍历结果,可知 A A A为根结点,再根据中序遍历结果可知,CB为左子树的结点,EDF为右子树的结点。
在这里插入图片描述
再分别分别左、右子树
左子树: 观察CB在前序中的位置,B在A之后,那么B为A的左孩子,接着判断C, 假设C是B的右孩子,那么在中序遍历中 ,B应该在C之前了,所以C是B的左孩子
右子树:在前序遍历中,D是第一个出现的,那么显然D是A的右孩子,根据中序遍历,E为D的左孩子,F为为D的右孩子
确定树的结构如下:
《大话数据结构》-根据遍历结果反推二叉树_第1张图片
那么该二叉树的后序遍历序列为:CBEFDA

你可能感兴趣的:(数据结构与算法)