私はこのコードを持っています:
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);
}
私が理解できない2つのこと、1. Build(tree,0) を渡すことができないのはなぜですか? 初期化されていないと書かれていますが、初期化されていないことを気にする必要はありません。必要なすべてのメモリをすぐに割り当てているので、新しく割り当てられたノードを指すようになります。
このコードを修正するにはどうすればよいですか? ありがとうございました!!!