6-10 二叉树的遍历 (25分)

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 )//层序遍历
{
    BinTree B[100];//结构体数组
    BinTree T;
    int i=0,j=0;
    if(!BT)return;//树为空,返回
    if(BT)//不为空
    {
        B[i++]=BT;//根节点入队
        while (i!=j)//队列不空
        {
            T=B[j++];//出队
            printf(" %c",T->Data);
            if(T->Left) B[i++]=T->Left;
            if(T->Right) B[i++]=T->Right;
        }

    }
}

你可能感兴趣的:(数据结构,二叉树)