PTA 4-3 二叉树的遍历

//左根右
void InorderTraversal( BinTree BT )
{
    if(BT)
    {
        InorderTraversal(BT->Left);
        printf(" %c",BT->Data);
        InorderTraversal(BT->Right);
    }
}
//根左右
void PreorderTraversal( BinTree BT )
{
    if(BT)
    {
        printf(" %c",BT->Data);
        PreorderTraversal(BT->Left);
        PreorderTraversal(BT->Right);
    }
}
//左右根
void PostorderTraversal( BinTree BT )
{
    if(BT)
    {
        PostorderTraversal(BT->Left);
        PostorderTraversal(BT->Right);
        printf(" %c",BT->Data);
    }
}
//层序输出,用一个队列存一个结点,输出队列元素,然后每次存左右结点就好啦
void LevelorderTraversal( BinTree BT )
{
    if(BT==NULL)
        return;
    BinTree q[10010];
    int s,t;
    s=t=0;

    BinTree T;
    q[t++]=BT;
    while(s<t)
    {
        T=q[s];
        printf(" %c",T->Data);
        if(T->Left)
            q[t++]=T->Left;
        if(T->Right)
            q[t++]=T->Right;
        s++;
    }
}

原文地址:https://www.cnblogs.com/keyboarder-zsq/p/6777548.html