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

    二叉树&分治

    • 二叉树的结构形式天生具有使用分治法的特征,遇到二叉树问题优先试用分治法
    • 二叉树分治算法复杂度:
      • T(n) = 2(T(n/2) + O(1));
      • O(T(n)) = O(n);
    • 二叉树遍历:按照既定次序,对二叉树结点各访问一次而且仅一次。
    • ★ 二叉树非递归遍历思想:根据栈先入后出的特点,在“顺序”前面的后入栈,在“顺序”后面的先入栈;

    二叉树前序遍历(经典递归 & 分治法 & 非递归)

    前序遍历-经典递归实现

     

    前序遍历-分治法递归实现

    分治法与经典递归实现的核心差别是,
    • 经典递归遍历共享全局变量results;
    • 分治法考虑整颗二叉树的遍历与左右儿子的遍历关系;
     

    前序遍历-非递归实现

     
     





    二叉树中序遍历(经典递归 & 分治法 & 非递归)

    中序遍历-经典递归实现

     

    中序遍历-分治法递归实现

     

    中序遍历-非递归实现

     



    二叉树后序遍历(经典递归 & 分治法 & 非递归)

    后序遍历-经典递归实现

     

    序遍历-分治法递归实现

     

    序遍历-非递归实现

     







    所有博文来自个人为知笔记,内容多为读书笔记和理解内容;
  • 相关阅读:
    如何申请iOS开发者证书/发布app到手机
    STL
    TCP/IP编程
    STL
    STL
    Python网络爬虫
    Python网络爬虫
    Python网络爬虫
    Python编程-基础知识-python项目包和文件的管理以及如何引用相对路径的包和模块
    带你认识HL7和CDA
  • 原文地址:https://www.cnblogs.com/yzwall/p/6637111.html
Copyright © 2011-2022 走看看