给出一棵二叉树的中序与后序排列。求出它的先序排列。约定树结点用不同的大写字母表示长度≤8
根据中序和后序排列求先序排列的方法如下:
- 后序排列的最后一个元素为根节点。
- 在中序排列中,找到根节点的位置,将中序排列分为左子树和右子树。
- 在后序排列中,根据左子树和右子树的长度,将后序排列分为左子树和右子树。
- 递归地对左子树和右子树进行步骤1到3。
- 按照先序遍历的顺序,先输出根节点,再输出左子树,最后输出右子树。
下面以一个具体的例子来说明:
中序排列:D B E A F C 后序排列:D E B F C A
根据后序排列,得到根节点为A。 在中序排列中,根据A的位置,将中序排列分为左子树和右子树: 左子树:D B E 右子树:F C
在后序排列中,根据左子树和右子树的长度,将后序排列分为左子树和右子树: 左子树:D E B 右子树:F C
递归地对左子树和右子树进行步骤1到3: 左子树的中序排列:D B E 左子树的后序排列:D E B 右子树的中序排列:F C 右子树的后序排列:F C
继续递归地对左子树和右子树进行步骤1到3: 左子树的根节点为B。 左子树的中序排列:D 左子树的后序排列:D 右子树的根节点为C。 右子树的中序排列:F 右子树的后序排列:F
最终得到的先序排列为:A B D E C
原文地址: https://www.cveoy.top/t/topic/hPYq 著作权归作者所有。请勿转载和采集!