c++的二叉树前序,中序,后续的区别

前序遍历(Preorder Traversal)是指在二叉树遍历过程中,首先访问根节点,然后按照先左后右的顺序遍历左子树和右子树。

中序遍历(Inorder Traversal)是指在二叉树遍历过程中,先遍历左子树,然后访问根节点,最后遍历右子树。

后序遍历(Postorder Traversal)是指在二叉树遍历过程中,先遍历左子树,然后遍历右子树,最后访问根节点。

以一棵二叉树为例,假设其根节点为A,左子树为B,右子树为C。那么:

前序遍历的结果就是:A -> B -> C
中序遍历的结果就是:B -> A -> C
后序遍历的结果就是:B -> C -> A

1。给定一棵二叉树,其前序遍历结果为: ABDECFG,中序遍历结果为: DEBACFG。请问这棵树的正确后序遍历结果是什么?
根据前序遍历和中序遍历的结果,我们可以确定这棵二叉树的结构和节点的相对顺序。根据前序遍历的特点,根节点必定是第一个节点,而根据中序遍历的特点,根节点的左子树在根节点的左侧,右子树在根节点的右侧。

给定的前序遍历结果为:ABDECFG
给定的中序遍历结果为:DEBACFG

根据前序遍历结果,我们可以得到根节点为A。

根据中序遍历结果,我们可以得到根节点A的左子树节点为DEB,右子树节点为CFG。

接下来,我们可以继续递归地应用上述步骤来构建整棵树。

左子树的前序遍历结果为:BDE
左子树的中序遍历结果为:DEB
根据左子树的前序遍历结果,我们可以得到左子树的根节点为B。
根据左子树的中序遍历结果,我们可以得到左子树的左子树节点为D,右子树节点为E。

右子树的前序遍历结果为:CFG
右子树的中序遍历结果为:CFG
根据右子树的前序遍历结果,我们可以得到右子树的根节点为C。
根据右子树的中序遍历结果,我们可以得到右子树的左子树节点为F,右子树节点为G。

现在我们已经重建了整棵树的结构如下:

 A
/ \

B C
/ \
D E F

G
根据二叉树的后序遍历顺序(左子树->右子树->根节点),我们可以得到树的后序遍历结果为:DEBFGCA。

posted on 2024-01-24 00:37  fussed  阅读(236)  评论(0)    收藏  举报