本文主要是介绍二叉树前序、中序、后序遍历相互求法(实例),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.已知先序和中序求后序
先序遍历的节点顺序是:ADCEFGHB,中序遍历是CDFEGHAB,则后序遍历的结果是 CFHGEDBA
解:1)根据先序遍历结果可知A是根节点,根据中序遍历知道A的左子树是(CDFEGH),右子树是(B)
2)左边中D是根节点,由中序遍历的顺序CD知道,C是D的左子树;
E是D的右子树,由中序遍历的顺序FE知道,F是E的左子树;
G是E的右子树,由中序遍历的顺序GH知道,H是G的右子树
3)故二叉树的图为
A
/ \
D B
/ \
C E
/ \
F G
\
H
4)由图知道后序遍历的结果是CFHGEDBA
2. 已知后序和中序求先序
后序遍历是DABEC,中序遍历是DEBAC,则先序遍历是CEDBA
解:1)根据后序遍历结果知道C是根节点,根据中序遍历知道C的左子树是DEBA,没有右子树
2)左边E是根节点,由中序遍历DE知道,D是E的左子树
B是E的右子树,A是B的右子树
3)故二叉树的图为
C
/ \
E
/ \
D B
\
A
4)由图知道先序遍历的结果是CEDBA
http://blog.csdn.net/jsjxy2009/article/details/39403453
这篇关于二叉树前序、中序、后序遍历相互求法(实例)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!