zoukankan      html  css  js  c++  java
  • 二叉树的遍历

    二叉树的遍历

    二叉树常见的遍历方式

     前序遍历
     中序遍历
     后序遍历
     层序遍历

    前序遍历

    访问顺序:根节点、前序遍历左子树,前序遍历右子树

    利用栈实现
    1.设置node=root
    2.循环执行以下操作
        如果node != null
        对node进行访问,将node.right入栈
        设置node = node.left
        如果node == null
        如果栈为空,结束遍历
        如果栈不为空,弹出栈顶元素并赋值给node

    中序遍历

    访问顺序:中序遍历左子树、根节点、中序遍历右子树

    利用栈实现
    设置node = root
    循环执行以下操作
        如果node != null
        将node入栈,设置node = node.left
        如果 node == null
        如果栈为空,结束遍历
        如果栈不为空,弹出栈顶元素并赋值给node
        对node进行访问
        设置node = node.right

    后序遍历

    访问顺序:后序遍历左子树、后序遍历右子树、根节点

    实现方式
    将root入栈
    循环执行以下操作,直到栈为空
    如果栈顶节点是叶子节点或者上一次访问的节点是栈顶节点的子节点
    弹出栈顶节点,进行访问
    否则
    将栈顶节点的right、left按顺序入栈

    层序遍历

    访问顺序:从上到下、从左到右依次访问每个节点

    实现思路:使用队列
    将根节点入队
    循环执行以下操作,知道队列为空
    将队头结点A出队,进行访问
    将A的左节点入队
    将A的有节点入队
  • 相关阅读:
    SQL盲注工具BBQSQL
    嗅探X-Windows服务按键工具xspy
    多协议底层攻击工具Yesinia
    LLMNR欺骗工具Responder
    Arduino可穿戴教程保存源文件与打开已经存在的源文件
    GRDB使用SQLite的WAL模式
    CString之GetBuffer与ReleaseBuffer
    VC++ 模块与资源分离
    KV6.60 SP1
    Html之head部分详解
  • 原文地址:https://www.cnblogs.com/muzichenyu/p/12926625.html
Copyright © 2011-2022 走看看