一颗二叉树的先序遍历序列为3541952,中序遍历序列为5413892,请还原其结构
时间: 2023-06-26 16:08:44 浏览: 151
我们可以通过先序遍历序列和中序遍历序列来还原二叉树的结构。
先序遍历序列的第一个元素为根节点,即3。在中序遍历序列中找到3,可以发现它的左边是5 4 1,右边是8 9 2。因此,3的左子树的根节点为5,右子树的根节点为8。
接下来,考虑5这个子树。它的先序遍历序列为5 4 1,中序遍历序列为5 4 1。根据同样的方法,5的左子树的根节点为4,右子树的根节点为1。
对于8这个子树,它的先序遍历序列为8,中序遍历序列为8。因此,它是一个叶子节点。
现在我们已经还原了3的左子树和右子树,继续递归处理即可。对于5的左子树,其先序遍历序列为4,中序遍历序列为4,因此它也是一个叶子节点。对于5的右子树,其先序遍历序列为1,中序遍历序列为1,同样为叶子节点。对于8的左子树和右子树,它们都是叶子节点。
最终得到的二叉树结构如下所示:
```
3
/ \
5 8
/ \ \
4 1 9
/
2
```
相关问题
二叉树的遍历推理 已知二叉树的先序遍历序列为 EIFCGABHDJ 中序遍历序列为 FIGCAEHDBJ 则后序遍历序列为
GFICAEHJDBHABCGEIF
推理过程:
根据先序遍历序列,可以发现根节点为E。
根据中序遍历序列,可以将二叉树分为左子树和右子树。
左子树的中序遍历序列为FIGCAEH,对应的先序遍历序列为IFCGAEH。
右子树的中序遍历序列为DBJ,对应的先序遍历序列为BHDJ。
对左子树和右子树分别进行递归,得到左子树的后序遍历序列GFICAEHJ和右子树的后序遍历序列BHJD.
将左子树的后序遍历序列和右子树的后序遍历序列拼接起来,并加上根节点E,得到最终的后序遍历序列GFICAEHJDBHABCGEIF。
已知二叉树的先序遍历序列为 DAGICJBFHE 中序遍历序列为 GACIDFBHJE 则后序遍历序列为
根据二叉树的遍历序列重构二叉树,得到的二叉树如下所示:
```
D
/ \
A I
/ / \
G C J
/ \
B F
/ \
H E
```
根据后序遍历的定义,后序遍历的最后一个节点为根节点。因此,我们可以先确定根节点为 E。然后,我们可以根据中序遍历确定左子树和右子树的节点集合。具体地,E 的左侧为左子树的节点集合 {G, A, C, I, D, F, B, H},右侧为右子树的节点集合 {J}。接下来,我们可以根据左子树和右子树的节点集合递归地确定左子树和右子树的后序遍历序列。
左子树的后序遍历序列为 {G, A, C, I, F, H, B, J, E, D},右子树的后序遍历序列为 {J}。因此,二叉树的后序遍历序列为 {G, A, C, I, F, H, B, J, E, D, J}。
因此,答案为:GACIDFBHJJEED。
阅读全文