二叉树、先根、后根、中序遍历
先根:先访问当前节点再遍历左子树,再遍历右子树
后根:先遍历左子树,再遍历右子树,然后访问当前节点
中序:先访问左子树,然后访问当前节点,再访问右子树
例:已知一棵二叉树的中序遍历得到的结点序列是:DEBAFCHG, 后序遍历得到的结点序列是:EDBFHGCA,画出这棵二叉树
- 先根据后续遍历的结果,得出该二叉树的根为A,再根据中序遍历得到的结果可分为左子树(DEB)右子树(FCHG)
- 再根据后续遍历结果得出左子树辈分最高的为为B(EDB),再根据后续结果得出右子树中辈分最高的为C(FHGC)当前可以画出
A
B C
- 对于左子树根据中序遍历先遍历左子树才到B,故DE均为B的左子树,再根据中序遍历得到B的最左子树(就是一直沿着左子树走走到底)为D,再根据后序得E为D右子树。
A
B C
D
E
- 再根据3中得方法得到F为C得最左子树,再根据中序后序可以得到
A
B C
D
E F G
H