zoukankan      html  css  js  c++  java
  • 公交车站捡垃圾之二叉树的三种遍历方法

    二叉树的遍历


    今天下午看了二叉树的三种遍历方式,虽然能写出代码,但是理解可能不太到位,感觉很容易忘,所以想到一个形象的方法,把每个节点当作公交车站,而访问节点则是在这个公交车站捡垃圾,右子树和左子树则表示岔路。然后这个捡垃圾的人钟爱左边这个方向,所以一直以左优先。甲乙丙三个人,都爱捡垃圾,但是思考方式不同,所以捡垃圾的方法有点不同。

    先序遍历

    先序遍历最简单,秉承的原则是,甲很小心谨慎,每次经过公交车站,怕别人捡了,都把垃圾先捡到手,直到左边的路走完了,再往回走,但是回来的过程中,在公交车站,看到右边还有条公路,就去这条路上按照他的原则捡垃圾, 捡完了之后再回到原来的路上,继续回去。如下图

    中序遍历

    乙这个人,有点小聪明,他觉得一开始就把垃圾捡了,那岂不是很重,所以他先走到左边的尽头,再捡垃圾,这个过程中把路记下来了,然后在回来的过程中,遇到公交车站,捡完垃圾,如果是岔路,继续往右边走。右边的捡完了,回到主路继续向之前的公交车站走。

    后续遍历

    丙更聪明了,他往左走的时候,先记下公交车站,然后再记下来右边有条路(但是这条路没走过,不知道有没有垃圾,所以不能直接捡,),这样回来捡垃圾的路上,想起来右边还有条路,于是继续去右边这条路找垃圾,当右边这条路找完了,遇到公交车站,把这个公交车站的垃圾捡了,继续往回走。

  • 相关阅读:
    Linux查看文件被哪个进程占用
    命令行启动rstudio server
    Spring Boot配置文件及多环境配置
    Spring Boot yml配置文件
    js实现自定义概率抽奖算法
    Flutter之adb: failed to install apk的解决方法
    Flutter之不简单的搜索条
    git操作之commit规范
    Flutter之毛玻璃效果的实现
    固定定位下div水平居中
  • 原文地址:https://www.cnblogs.com/xmxj0707/p/9671149.html
Copyright © 2011-2022 走看看