В функции bf () я попытался присвоить коэффициенты баланса каждому узлу моего AVL дерева .Первая итерация, когда я вызываю функцию из функции main (), передавая дерево, работает отлично.Но после первой рекурсии функция balance () не отвечает, и код не идет дальше.Я напечатал 'g' и 'm' букв, чтобы знать, где работает код. 'g' печатается только один раз, когда я вызываю основную функцию, но 'm' даже не один раз.
int balance(struct node *tree)
{
int lh,rh;
if(tree==NULL)
return 0;
else
{
lh=balance(tree->left);
rh=balance(tree->right);
return (lh+1)-(rh+1);
}
}
void bf(struct node *tree)
{
tree->bfactor=balance(tree); //not proceeding after this step after first recursion.
printf("g");
bf(tree->left);
printf("m");
bf(tree->right);
}