[讨论]数据结构中创建二叉树的指针用法!
在数据结构中创建一个二叉树中create_tree函数(如下代码),我不明白为什么函数中要用*T(一个二级指针),而不直接用T呢?我试着把*T改为T,结果编译仍可以通过只是运行的时候程序陷入了死循环。
typedef struct bitnode{
char data;
struct bitnode *lchild,*rchild;
}bitnode,*bitree;
bitree create_tree(bitree *T)
{
char ch;
printf("please put into a char:\n");
scanf("%c",&ch);
getchar();
if(ch==' ')
(*T)=null;
else
{
if(!(*T=(bitnode*)malloc(sizeof(bitnode))))
exit(overflow);
(*T)->data=ch;
create_tree(&(*T)->lchild);
create_tree(&(*T)->rchild);
}
return T;
}