Black-W 2017-11-19 11:50 采纳率: 0%
浏览 1222

数据结构,建立二叉树空指针问题。

typedef struct BTNode {
char data ;
struct BTNode *Lchild , *Rchild ;
} BTNode ;
BTNode *Preorder_Create_BTree(BTNode *T)
{

char ch ;
ch=getchar();
if (ch=='?') {
T=NULL;
return T ;
} else {
T=(BTNode *)malloc(sizeof(BTNode)) ;
T->data=ch ;
Preorder_Create_BTree(T->Lchild) ;
Preorder_Create_BTree(T->Rchild) ;
return T ;
}
}
int main()
{
BTNode *T=NULL;
T=Preorder_Create_BTree(T);
return 0;
}
这样定义的函数,输入先序遍历结果,比如1+2输入+1??2??
但是发现输入?执行T=NULL之后,T-Lchild地址不是0000000000000000
比如输出T->Lchild->Lchild的地址并不是NULL
为什么会这样??

  • 写回答

1条回答 默认 最新

  • COCO_AS 2017-11-19 13:27
    关注

    Preorder_Create_BTree(T->Lchild,quit) ; 这两个参数的函数定义在哪?

    评论

报告相同问题?