• 二叉树的遍历


    二叉树的遍历

    二叉树常见的遍历方式

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

    前序遍历

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

    利用栈实现
    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的有节点入队
  • 相关阅读:
    面向过程思想理解:
    Ajax的get请求向服务器请求数据五步骤?
    什么是Ajax无刷新技术?
    Ajax和JavaScript的区别
    为什么要用ajax
    好文章分享
    easyui系列之表单二Combogrid,Form,filebox,CheckBox(3)
    属性vs字段的关系
    jQuery-Load方法
    .Net 百度经纬度转高德
  • 原文地址:https://www.cnblogs.com/muzichenyu/p/12926625.html
Copyright © 2020-2023  润新知