前序建立二叉树(使用和不使用二级指针)

来源:互联网 发布:淘宝举报好评返现 编辑:程序博客网 时间:2024/06/05 22:33
 
typedef struct BiTreeNode{
    char data;
    struct BiTreeNode *lchild;
    struct BiTreeNode *rchild;
}BiTreeNode,*BiTree;
/*
    使用二级指针前序建立二叉树
*/
void createBiTree(BiTree *pt){
    char ch;
    scanf("%c",&ch);
    if(ch==' ')
        *pt = null;
    else{
        *pt = (BiTreeNode *)malloc(sizeof(BiTreeNode));
        (*pt)->data = ch;
        createBiTree(&(*pt)->lchild);
        createBiTree(&(*pt)->rchild);
    }
}

/*
    不使用二级指针前序建立二叉树
*/
BiTreeNode *createBiTree(){
    BiTreeNode *pt;
    char ch;
    scanf("%c",&ch);
    if(ch==' ')
        pt = null;
    else{
        pt = (BiTreeNode *)malloc(sizeof(BiTreeNode));
        pt->data = ch;
        pt->lchild = createBiTree();
        pt->rchild = createBiTree();
    }
    return pt;
}