二叉树的前序遍历,中序遍历和后序遍历(有两种遍历确定另一种遍历)

二叉树的遍历

二叉树按照从左到右的规则,把六种遍历简化到只研究三种遍历:前序遍历(DLR),中序遍历(LDR),后序遍历(LRD)。

二叉树遍历的实质是递归。

目录

二叉树的遍历

前序遍历

中序遍历

后序遍历

练习写出下列二叉树的前中后序遍历序列

由两种遍历推到二叉树,得到另一种遍历序列

答案

注释:



前序遍历

先访问根节点,再遍历左子树,最后遍历右子树。

中序遍历

先遍历左结点,再访问根节点,最后遍历有结点。

后序遍历

先遍历左结点,再遍历右结点,最后访问根节点。


二叉树

前序遍历:第一次:方位根节点A,左子树B(AB)。因为左子树B是下一个分支的根节点,所以暂时不到C,继续访问B。

                  第二次:访问根节点B,无左子树,遍历右子树D(ABD)。

                  第三次:访问根节点D,左子树F(ABDF),右子树G(ABDFG)。

                  以A为根节点的左子树遍历结束后,再遍历右子树。

                  第四次:访问C结点(ABDFGC),又因为C没有左子树,所以接下来到C的右子树E(ABDFGCE)。

                  第五次:访问根节点E(ABDFGCE),E没有左子树,然后到E的右子树H(ABDFGCEH)。

中序遍历:A有左子树,先遍历B。

                  B没有左子树,先B(B);B有右子树D,先D。

                  D有左子树F,先F(BF);F没有孩子结点,返回根节点D(BFD);D有右结点G(BFDG)。              

                  以D为根节点的分支遍历结束,返回上一层B;以B为根节点的分支也遍历结束,返回上一层A;A的左子树被遍历,接下来到A(BFDGA)。

                  A有右子树C,且C没有左子树(BFDGAC),C有右子树E。

                  E没有左子树,先E(BFDGACE);E有右子树H,且F没有孩子结点(BFDGACEH)。

后序遍历:找没有孩子节点的最靠近左边的左子树,然后找右子树,鉴于篇幅原因,就不再赘叙。

                  FGDBHECA。

练习写出下列二叉树的前中后序遍历序列

答案在后面。

由两种遍历推到二叉树,得到另一种遍历序列

由三种遍历序列中的两种确定一个具体的二叉树是最常见的考题之一,具体题型有以下两种类型:

  • 由前序遍历和中序遍历求的后序遍历
  • 有后续遍历和中序遍历求得谦虚遍历

前序遍历的特点:第一个元素一定是根节点;

中序遍历的贴点:根节点的左侧是左子树,右侧是右子树;

后序遍历的特点:最后一个元素一定是根节点。

例:一直某二叉树的前序遍历序列为ABCDEFG,中序遍历序列为CAFGE,求后序遍历序列。

解:由前序遍历序列知:A是根节点;

       由中序遍历序列知:CBD是左子树,FEG是右子树;

       讨论A的左子树:左子树的前序遍历序列是BCD,中序遍历序列是CBD。

                                   B是根节点,由中序遍历得CD是B的左右结点。

       讨论A的右子树:右子树的前序遍历序列是EFG,中序遍历序列是FGE。

                                   E是根节点,由中序遍历得FG是左结点,E没有右结点。

       讨论E的左子树:左子树的前序遍历是FG,中序遍历是FG。

                                   F是根节点,由中序遍历得G是F的右结点,F没有左结点。

二叉树

 

       后序遍历为:CDBGFEA。

练习:已知某二叉树的中序遍历为ABCDEFG,后序遍历为BDCAFGE,求其前序遍历。

           答案在后面。

答案

  • 前序遍历:ABHFDECKG;中序遍历:HBDFAEKCG;后序遍历:HDFBKGCEA
  • 前序遍历:ABDHIEJCFKG;中序遍历:HDIBEJAFKCG;后序遍历:HIDJEBKFGCA
  • 前序遍历:-+a*bc/de;中序遍历:a+b*c-d/e;后序遍历:abc*+de/-
  • 二叉树如如图前序遍历为:EACBDGF

注释:

本人初创,疏漏之处,评论区欢迎指正。

 

 

 

 

 

 

 

 

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值