主题:[讨论]关于二叉链表的问题
大家好,我正在学习数据结构,看到二叉链表的时候有个问题,想请各位大虾帮忙解答,在此先谢谢大家啦![em2][em2]
下面这段代码是二叉树(二叉链表)的建立,为什么函数的形参要用“指针的指针”呢??我把它改成“指针变量”就不对了,我已经试过了。
typedef int datatype;
typedef struct node
{ datatype data;
struct node *lchild;
struct node *rchild;
}BINTNODE,*BINTREE;
void createbintree(BINTREE *t)
{ int a;
scanf("%d",&a);
if(a==0) *t=NULL;
else
{ *t=(BINTNODE *)malloc(sizeof(BINTNODE));
(*t)->data=a;
createbintree(&(*t)->lchild);
createbintree(&(*t)->rchild);
}
}
下面这段代码是二叉树(二叉链表)的建立,为什么函数的形参要用“指针的指针”呢??我把它改成“指针变量”就不对了,我已经试过了。
typedef int datatype;
typedef struct node
{ datatype data;
struct node *lchild;
struct node *rchild;
}BINTNODE,*BINTREE;
void createbintree(BINTREE *t)
{ int a;
scanf("%d",&a);
if(a==0) *t=NULL;
else
{ *t=(BINTNODE *)malloc(sizeof(BINTNODE));
(*t)->data=a;
createbintree(&(*t)->lchild);
createbintree(&(*t)->rchild);
}
}