递归创建二叉树

#include
typedef struct node
{
    char data;
    struct node *lchild,*rchild;
}BTNode;
void Greate(BTNode *&T)
{
    char ch;
    scanf("%c",&ch);
    if(ch=='#') T=NULL;
    else 
    {
        T=(BTNode*)malloc(sizeof(BTNode));
        T->data=ch;
        Greate(T->lchild);
        Greate(T->rchild);
    }
}
void Disp(BTNode *T)
{
    if(T!=NULL)
    {
        printf("%c",T->data);
        if(T->lchild!=NULL || T->rchild!=NULL)
        {
            Disp(T->lchild);
            if(T->rchild!=NULL) Disp(T->rchild);
        }
    }
}
int main()
{
    BTNode *T;
    Greate(T);
    Disp(T); 
    return 0;
}

你可能感兴趣的:(数据结构,c语言,c++)