zoukankan      html  css  js  c++  java
  • 对二叉树进行广度优先遍历

    假设一个二叉树结构,如下

    对它进行广度优先遍历的时候,用队列进行操作

    定义一个队列:queue = [ ]

    1、先将A从右侧压入队列,queue = [A]

    2、将A从队列左侧取出,queue = [ ],对取出的A进行遍历左孩子和右孩子,遍历到B和C,将它们从右侧依次压入队列,queue = [B,C]

    3、将B从队列左侧取出,queue = [C],对取出的B进行遍历左孩子和右孩子,遍历到D和E,将它们从右侧依次压入队列,queue = [C,D,E]

    4、将C从队列左侧取出,queue = [D,E],对取出的C进行遍历左孩子和右孩子,遍历到F和G,将它们从右侧依次压入队列,queue = [D,E,F,G]

    5、将D从队列左侧取出,queue = [E,F,G],对取出的D进行遍历左孩子和右孩子,遍历到H和I,将它们从右侧依次压入队列,queue = [E,F,G,H,I]

    ...

    ...

    ...

    如上操作,直到遍历完成

    这就是对二叉树进行广度优先遍历的一种实现思想

  • 相关阅读:
    HDU 1711
    HDU 4135
    HDU 4462
    HDU 1969
    flask的nocache防止js不刷新
    python2.x里unicode错误问题
    使用SwingWork反而阻塞SwingUI
    利用JProfile 7分析内存OOM
    编译android的一些坑
    java jmenu的替代方案
  • 原文地址:https://www.cnblogs.com/yummylucky/p/10701558.html
Copyright © 2011-2022 走看看