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

    二叉树中的先序,中序,后续遍历很容易让人迷糊,记录一下概念。

    遍历是将二叉树中的结点信息由非线性排列变为某种意义上的线性排列。也就是说,遍历操作使非线性结构线性化。

    一棵二叉树由根结点、左子树和右子树三部分组成,若规定 D、L、R 分别代表遍历根结点、遍历左子树、遍历右子树,则二叉树的遍历方式有 6 种:DLR、DRL、LDR、LRD、RDL、RLD。由于先遍历左子树和先遍历右子树在算法设计上没有本质区别,所以,只讨论三种方式:DLR(先序 遍历)、LDR(中序遍历)和 LRD(后序遍历)。

    我们对如下树进行先序遍历(DLR)、中序遍历(LDR)和 后序遍历(LRD),大家试着写出各种遍历后的字母排列后再看答案。

    image

    1、先序遍历(DLR)

    先序遍历的基本思想是:首先访问根结点,然后先序遍历其左子树,最后先序遍历其右子树。

    DLR结果

    2、DRL

    DRL的基本思想是:首先访问根结点,然后先序遍历其右子树,最后先序遍历其左子树。

    DRL结果
     

    3、中序遍历(LDR) 中序遍历的基本思想是:首先中序遍历根结点的左子树,然后访问根结点,最后中序遍历其右子树。

    LDR结果

    4、RDL

    RDL的基本思想是:首先中序遍历根结点的右子树,然后访问根结点,最后中序遍历其左子树。

    RDL结果

    5、后序遍历(LRD) 后序遍历的基本思想是:首先后序遍历根结点的左子树,然后后序遍历根结点的右子树,最后访问根结点

    LRD结果

    6、RLD

    RLD的基本思想是:首先后序遍历根结点的右子树,然后后序遍历根结点的左子树,最后访问根结点

    RLD结果


     

    实现二叉树排序,查找

  • 相关阅读:
    【git】强制覆盖本地代码(与git远程仓库保持一致)
    ffmpeg CLI常用命令
    旧机改造步骤
    macbook air 2012 mid 安装 windows10 双系统遇到错误 no bootable device insert boot disk and press any key
    window、Linux 文本文件转换
    phalcon bug: model的findFirst会自动忽略一些空格
    oss2罗列所有文件
    如何让linux的history命令显示时间记录
    nginx 常用配置
    shell脚本 切换用户
  • 原文地址:https://www.cnblogs.com/ivanyb/p/2272211.html
Copyright © 2011-2022 走看看