• 二叉树遍历


    关于二叉树遍历

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

    那么下图的遍历顺序就是 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
    齐芒行,川锋明!
  • 相关阅读:
    iOS开发-图片高斯模糊效果
    很认真地聊一聊程序员的自我修养
    iOS 动画队列—仿映客刷礼物效果
    iOS -NSOperation并发编程
    iOS Status Bar变换
    iOS 使用Quartz和OpenGL绘图
    iOS开发中WiFi相关功能总结
    视频直播初窥:高仿喵播APP
    智捷公开课马上开始了-欢迎大家一起讨论学习-第一系列读《Swift开发指南(修订版) 》看Swift视频教程
    《iOS开发指南》要改iOS8版本了,听听您的意见?
  • 原文地址:https://www.cnblogs.com/qimang-311/p/14107615.html
Copyright © 2020-2023  润新知