二叉树的遍历#前序、中序、后序和层序遍历#包会#巨详细

前序遍历:先输出父节点 再遍历左子树和右子树

中序遍历:先遍历左子树 在输出父节点 最后遍历右子树

后序遍历:先遍历左子树 再遍历右子树 最后输出父节点

层序遍历:按照层级逐层遍历

思想:

不管是那种遍历,都是从根节点(A)出发!这很重要。前序也好,中序也好,把他们看成是一个任务,如果任务中执行到某个位置,发现这个字母竟然他下面是个树,此时就先别遍历他,而是先把包含这个字母在内的树,看成一个整体,再看一眼我要执行的任务,下次若还发现是树的元素还是这样操作。

前序遍历:

从A(父)出发,本应该然后是B,我发现B竟然下面是个树,就先不遍历他,我把下面的树看成一个整体,然后接着前序遍历,从B(父)出发,到了D,同理,直到我遍历到了F,然后遍历F的右,本应该是G,但是G下面有个树,对这个树继续前序遍历,然后G(父)、H(左)、I(右)。D的子树执行完了,到了D的右(E),B的子树也执行完了,到了C(右)。

中序遍历:

从A出发(因为A是父没有取),理应是取B,但是B有子树,往下到D,把包含D在内的树看成一个整体,先取到F(D子树中的左),然后取D子树中的D(父),然后理应再取D子树中右G,但是G有子树,故先取G子树中的左(H)、父(G)、右(I)。到这D的子树取完了,再把目光放到包含B在内的B的子树,该取D的父(B)然后取E(右)。到这B的子树取完了,该取父(A),然后C(右)

后序遍历:

从A出发(因为A是父没有取),理应是取B,但是B有子树,往下到D,先取到F(D子树中的左),然后理应取D子树中的G,但是G有子树,在G的子树中取H(左)、再取I(右)、G(父)。G子树取完了,然后在D的子树中,该取D(父)。D的子树取完了,在B的子树中,该取E(右),然后取B(父)。B的子树取完了,然后取C(右),然后取A(父)

层序遍历:
每一层从左到右,一层往下...

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值