二叉树的递归遍历

【链表存储结构】

/* 定义二叉树结构 */
typedef struct TreeNode *BinTree;
typedef BinTree Position;
struct TreeNode{
    ElementType Data;
    BinTree Left;
    BinTree Right;
}

【先序遍历】
先访问根节点,先序遍历其左子树,先序遍历其右子树。

先序遍历
/* 先序遍历 */
/* 遍历顺序 ABDFE  CGHI */
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 */
void PreOrderTraversal(BinTree BT)
{
    if(BT){
        PreOrderTraversal(BT->Left);
        printf("%d",BT->Data);
        PreOrderTraversal(Bt->Right);
    }
}

【后序遍历】

后序遍历
/* 后序遍历 */
/* 左子树->右子树-> 根节点
   D E F B H G I C A */
void PreOrderTraversal(BinTree BT)
{
    if(BT){
        PreOrderTraversal(BT->Left);
        PreOrderTraversal(Bt->Right);
                printf("%d",BT->Data);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 树的概述 树是一种非常常用的数据结构,树与前面介绍的线性表,栈,队列等线性结构不同,树是一种非线性结构 1.树的定...
    Jack921阅读 9,933评论 1 31
  • 相关概念 「树的遍历」 指按照一定规则不重复地访问树中所有节点的过程。「访问」指针对节点的操作,如打印节点的值,更...
    nbb3210阅读 5,834评论 0 1
  • 二叉树的结构定义 二叉树的遍历 对二叉树的遍历是指访问树的每个结点,且每个结点仅被访问一次。访问是一个抽象的概念,...
    tingshuo123阅读 3,633评论 0 0
  • 对于二叉树T,可以递归定义它的先序遍历、中序遍历和后序遍历,如下所示: PreOrder(T)=T的根结点+Pre...
    Gaolex阅读 3,169评论 0 1
  • 基于树实现的数据结构,具有两个核心特征: 逻辑结构:数据元素之间具有层次关系; 数据运算:操作方法具有Log级的平...
    yhthu阅读 9,796评论 1 5