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

    关于二叉树遍历

    最为清晰的就是层序遍历 也就是按照层次来一个个遍历

    那么下图的遍历顺序就是 1-2-3-4-5-6-7-8-9-10-11-12-13-14-15

    (一般来讲使用的是递归遍历)

    这样根据遍历的先后顺序分为先序遍历 、中序遍历 、 后序遍历

    1.先序遍历 (按照 根节点、左子节点、右子节点的顺序进行遍历 )

    按照实现的代码来讲
    
    cout<<根节点<<endl;
    
    递归左子节点
    
    递归右子节点
    
    首先输出的是主根节点,然后就是左子根节点 总是在遍历完所有的左子根节点之后才开始遍历右子根节点,就是相当于栈 根只是当前的节点输出
    递归左子节点1
    此时已经进入左子节点1上继续递归左子节点2 递归右边是等到你当前的左递归完成 因为此时你的程序递归右子节点的代码在递归左子节点的代码之前,左边一进入就是再调用左边的左边,如此首先肯定是输出所有的左子节点 就相当于是 首先递归到最内层然后一层一层往外释放
    所以按照先序遍历的顺序就是1-2-4-9-8-5-10-11-3-6-12-13-7-14-15

    由此观之 中序遍历的顺序就是(左 根 右) 递归完成左边的再输出根节点

    首先递归到最左边的子树区域 然后按照左边的次序优先的顺序到达叶子结点 然后输出根节点
    中序遍历的输出顺序为:9-4-8-2-10-5-11-1-12-6-13-3-14-7-15

    后序遍历的方式就是按照(左子节点 右子节点 根节点)的顺序

    所以就是要遍历完 所有的节点之后反过来从首先遍历完所有的子节点开始输出 输出的顺序还是按照先到的先输出 由于是左子节点开始遍历 所以左边优先 此时就是看到达的顺序来输出
    后序遍历的顺序为 9-8-4-10-11-5-2-12-13-6-14-15-7-3-1
    齐芒行,川锋明!
  • 相关阅读:
    MySQL之架构与历史(二)
    MySQL之架构与历史(一)
    MySQL之体系结构与存储实例
    Redis实现之复制(二)
    Redis实现之复制(一)
    选项卡
    滑动效果
    选择器
    下拉列表
    1.__tostring()这个方法在类里可以直接输出对象。2.克隆对象的运用
  • 原文地址:https://www.cnblogs.com/qimang-311/p/14107615.html
Copyright © 2011-2022 走看看