二叉树结点的计算?某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访问顺序是dgbaechf,则后序遍历
来源:学生作业帮 编辑:神马作文网作业帮 分类:数学作业 时间:2024/11/11 22:12:03
二叉树结点的计算?
某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访问顺序是dgbaechf,则后序遍历的结点访问顺序是(gdbehfca)
这个答案是怎么算出来的?
某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访问顺序是dgbaechf,则后序遍历的结点访问顺序是(gdbehfca)
这个答案是怎么算出来的?
首先我们知道,前序遍历的规则是:根结点→左子结点→右子结点
中序遍历是:左子结点→根结点→右子结点
后序遍历是:左子结点→右子结点→根结点
那么,对于一棵二叉树,前序遍历的第一个结点一定是这棵树的根结点,即根结点是a.
在中序遍历的顺序dgbaechf中,以a分成左、右两边,左边是dgb,右边是echf.
所以,这棵树现在可以确定如下:
a
/ \
dgb echf
接下来再分别对左子树和右子树进行类似的操作.
对于左子树dgb来说,在前序遍历abdgcefh中找到bdg,证明这子树的根是b,那么现在可以确定的树结构如下:
a
/ \
b echf
/
dg
再看dg,前序遍历中的顺序为dg,所以d是dg这部分子树的根,那么又因为中序遍历的dg顺序也是dg,所以g是右子结点.
即:
a
/ \
b echf
/
d
\
g
现在看echf这部分子树,前序中顺序是cefh,所以子树根结点是c,那么左子结点是e,右子树是hf:
得到:
a
/ \
b c
/ / \
d e hf
\
g
最后只剩下hf部分了,前序遍历中是fh,所以根是f,那么h就是左子结点.
现在得到了整棵树:
a
/ \
b c
/ / \
d e f
\ /
g h
对这棵树再进行后序遍历就行了,结果就是:gdbehfca
中序遍历是:左子结点→根结点→右子结点
后序遍历是:左子结点→右子结点→根结点
那么,对于一棵二叉树,前序遍历的第一个结点一定是这棵树的根结点,即根结点是a.
在中序遍历的顺序dgbaechf中,以a分成左、右两边,左边是dgb,右边是echf.
所以,这棵树现在可以确定如下:
a
/ \
dgb echf
接下来再分别对左子树和右子树进行类似的操作.
对于左子树dgb来说,在前序遍历abdgcefh中找到bdg,证明这子树的根是b,那么现在可以确定的树结构如下:
a
/ \
b echf
/
dg
再看dg,前序遍历中的顺序为dg,所以d是dg这部分子树的根,那么又因为中序遍历的dg顺序也是dg,所以g是右子结点.
即:
a
/ \
b echf
/
d
\
g
现在看echf这部分子树,前序中顺序是cefh,所以子树根结点是c,那么左子结点是e,右子树是hf:
得到:
a
/ \
b c
/ / \
d e hf
\
g
最后只剩下hf部分了,前序遍历中是fh,所以根是f,那么h就是左子结点.
现在得到了整棵树:
a
/ \
b c
/ / \
d e f
\ /
g h
对这棵树再进行后序遍历就行了,结果就是:gdbehfca
二叉树结点的计算?某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访问顺序是dgbaechf,则后序遍历
二叉树的问题(2) 已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是A) acbed B
已知二叉树后序遍历序列是DBCEFGHA,中序遍历序列EDCBAHFG,它的前序遍历的序列是?麻烦再画下这二叉树.
已知二叉树的先根遍历和中序遍历,求后序遍历的算法?
已知二叉树后序遍历序列是DABEC 中序遍历列是 DEBAC ,它的前序遍历序列是:
已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是什么?
已知二叉树的后序遍历序列和中序遍历序列,怎样求其前序遍历序列!
已知二叉树的前序和后序遍历,怎么求中序遍历啊?
(53) 已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是______.A.cedba
VB已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是?
写出下列二叉树的中序遍历序列
已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍因序列是多少