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的有节点入队
  • 相关阅读:
    Linux系统调用
    Kubernetes 中强化tab 功能
    Docker镜像构建之案例分享
    网络基础之名词介绍
    网络基础协议之UDP(下篇)
    网络基础协议之UDP(上篇)
    内核升级
    尼恩 Java高并发三部曲 [官方]
    CDN图解(秒懂
    DNS图解(秒懂
  • 原文地址:https://www.cnblogs.com/muzichenyu/p/12926625.html
Copyright © 2011-2022 走看看