いくつかの整数を含む入力ファイルから整数を読み取り、バイナリ ツリーを作成しようとしています。なぜそれが (l==NULL) に常に入っているのかわかりません。2 回目は、読み取り値がルート値より大きいかどうかに応じて、左または右に移動する必要があります。どんな助けにも感謝します。ありがとう!
leaf* create_leaf(int i)
{
leaf* l = (leaf*)malloc(sizeof(leaf));
l->left = NULL;
l->right = NULL;
l->data = i;
}
leaf* l=NULL;
while(fscanf(input,"%d",&i) != EOF)
{
add_leaf(l,i);
}
void add_leaf(leaf* l, int i)
{
if(l == NULL)
{
printf("adding root\n");
l = create_leaf(i);
}
else if(i <= l->data)
{
if(l->left == NULL)
{
l->left = create_leaf(i);}
else {
add_leaf(l->left,i); }
}
else
{
if(l->right == NULL)
{
l->right = create_leaf(i); }
else {
add_leaf(l->right,i); }
}
}