二叉树的遍历(递归实现)

来源:互联网 发布:xml json弹幕 编辑:程序博客网 时间:2024/05/24 22:42
/*二叉树的遍历-递归实现*/typedef struct TreeNode *BinTree;   typedef BinTree Position;   struct TreeNode{          ElementType Data;          BinTree Left;          BinTree Right;      };/* 先序遍历    访问根结点   先序遍历其左子树   先序遍历其右子树 */ void PreOrderTraversal(BinTree BT) {   if(BT){    printf("%d",BT->Data);       PreOrderTraversal(BT->Left);       PreOrderTraversal(BT->Right);    }     } /* 中序遍历    中序遍历其左子树   访问根结点    中序遍历其右子树 */void InOrderTraversal(BinTree BT){    if(BT){        InOrderTraversal(BT->Left);        printf("%d",BT->Data);        InOrderTraversal(BT->Right);    } } /* 后序遍历    后序遍历其左子树   后序遍历其右子树   访问根节点 */void PostOrderTraversal(BinTree BT){    if(BT){        PostOrderTraversal(BT->Left);        PostOrderTraversal(BT->Right);        printf("%d",BT->Data);    } }