C语言-数据结构-二叉树的创建和前序遍历

//二叉树的创建,程序有误


#include<stdio.h>
#include<stdlib.h>

typedef struct BINode
{
    int data;
    struct BINode *lchild,*rchild;
} BiNode,*BiTree;

int Creat(BiTree *Tree)
{
    int el;
    scanf("%d",&el);
    if(el == 0) 
    {
        *Tree == NULL;
    }
    else
    {
        if(!(*Tree = (BiTree)malloc(sizeof(BiNode)))) exit(1);
        ((*Tree)->data) = el;
        Creat(&(*Tree)->lchild);
        Creat(&(*Tree)->rchild);
    }
    return 0;
}

void Preorder(BiTree Tree)
{
    if(Tree)
    {
        printf("%d ",Tree->data);
        Preorder(Tree->lchild);
        Preorder(Tree->rchild);
    }
}

int main()
{
    BiTree Tr;
    printf("按前序遍历输入值: ");
    Creat(&Tr);
    printf("\n前序遍历为: ");
    Preorder(Tr);
    return 0;
}