我有这个代码:
typedef struct node
{
int data;
struct node *left;
struct node *right;
} node;
void Build (node *root , int i)
{
if (i < 7)
{
root = (node *)malloc (sizeof(node));
root->data = i;
Build(root->left,2*i+1);
Build(root->right,2*i+2);
}
else
root = NULL;
}
void Print (node *root)
{
if (root)
{
printf ("%d ",root->data);
Print(root->left);
Print(root->right);
}
}
void main()
{
node *tree;
Build(tree,0);
Print(tree);
}
我不明白的两件事,1.为什么我不能通过 Build(tree,0) ?它说它未初始化,但为什么我要关心它是否未初始化?我将立即分配所有需要的内存,因此它将指向新分配的节点。
如何修复此代码?谢谢你!!!