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结果


     

    实现二叉树排序,查找

  • 相关阅读:
    OnGUI 音频
    Java 8 的一些新特性
    获取文件编码格式
    js 常用 正则
    C#中这个算是什么
    数据的批量增加
    Ehcache的配置(自学,有问题请指出)
    Linux 下配置和使用java、Tomcat
    StringBuffer和StringBuildr的区别
    Oracle中复制一张表的结构,用sql语句复制一张表结构
  • 原文地址:https://www.cnblogs.com/ivanyb/p/2272211.html
Copyright © 2011-2022 走看看