二叉树的遍历

来源:互联网 发布:机锋刹那版主淘宝店 编辑:程序博客网 时间:2024/04/29 20:13

最近在北京去一家做C开发的公司笔试,考查了二叉树的三种遍历:前序(先序、先根)、中序(中根)、后序(后根)

题目如下:

              二叉树的前序遍历输出:ABDHEICFJK

                           中序遍历输出:DHBEIACJFK

画出此二叉树并写出后序遍历输出

推导过程如下:1.由前序输出知道树根为A,            再由中序知道A的左边为DHBEI,右边为CJFK

                       2.由前序遍历知B为左子树根节点,再由中序知道B的左边为DH,右边为EI

                       3.由前序遍历知D为左子树根节点,再由中序遍历知D没有左子树,右子树为H

                       4.由前序遍历知E为右子树根节点,再由中序遍历知E没有左子树,右子树为I

                       A的右子树依此论推,可得到二叉树如下图:

                                            A

                                   B               C

                            D           E               F

                                H            I       J       K

后序遍历输出:HDIEBJKFCA

另外由后序遍历和中序遍历,求出前序遍历思路类似,先后序输出最后为树根,再中序,按此顺序递归即可!

注意:已知前序和后序求中序结果不唯一