zoukankan      html  css  js  c++  java
  • 数据结构:二叉树遍历及其递归实现

    先序遍历

    遍历过程为:

    • ①访问根结点;
    • ②先序遍历其左子树;
    • ③先序遍历其右子树。
    • A(B D F E )(C G H I)
    • 先序遍历=> A B D F E C G H I
    void PreOrderTraversal( BinTree BT )
    {
    if( BT ) {
    printf(“%d”, BT->Data);
    PreOrderTraversal( BT->Left );
    PreOrderTraversal( BT->Right );
    }
    }
    

    中序遍历

    • ①中序遍历其左子树;
    • ②访问根结点;
    • ③中序遍历其右子树。
    • (D B E F) A (G H C I)
    • 中序遍历=> D B E F A G H C I
    void InOrderTraversal( BinTree BT )
    {
    if( BT ) {
    InOrderTraversal( BT->Left );
    printf(“%d”, BT->Data);
    InOrderTraversal( BT->Right );
    }
    }
    

    后序遍历

    • ①后序遍历其左子树;
    • ②后序遍历其右子树;
    • ③访问根结点。
    • (D E F B )( H G I C) A
    • 后序遍历=> D E F B H G I C A
    void PostOrderTraversal( BinTree BT )
    {
    if( BT ) {
    PostOrderTraversal( BT->Left );
    PostOrderTraversal( BT->Right);
    printf(“%d”, BT->Data);
    }
    }
    

    三种遍历

    • 前后中按照访问根节点的先后顺序来确定。
    • 递归实现,前中后序遍历对应输出的前中后三个位置。
    • 先序、中序和后序遍历过程:遍历过程中经过结点的路线一样,只是访问各结点的时机不同。
    • 图中在从入口到出口的曲线上用三种符号分别标记出了先序、中序和后序访问各结点的时刻。
  • 相关阅读:
    【结构型】Proxy模式
    【结构型】Flyweight模式
    【结构型】Facade模式
    【结构型】Decorate模式
    【结构型】Composite模式
    适配器模式 -- 大话设计模式
    状态模式 -- 大话设计模式
    抽象工厂模式 -- 大话设计模式
    建造者模式 -- 大话设计模式
    观察者模式 -- 大话设计模式
  • 原文地址:https://www.cnblogs.com/vancasola/p/7842666.html
Copyright © 2011-2022 走看看