Когда я пытаюсь запустить мою программу, ввод занимает 2 или 3 шага, а затем резко останавливается, даже если я нажимаю Y для ввода большего количества элементов. Это скриншот моего вывода: Вот мой сегмент кода, lc обозначает левого потомка, rc обозначает правого потомка, а ht обозначает высоту дерева:
void inorder(struct node *root) //print inorder
{
if(root->lc!=NULL)
inorder(root->lc);
printf("%d ",root->data);
if(root->rc!=NULL)
inorder(root->rc);
}
struct node *insert(struct node *T,int x) //code for insertion of a node
{
if(T==NULL)
{
T=(struct node*)malloc(sizeof(struct node));
T->data=x;
T->lc=NULL;
T->rc=NULL;
}
else
{
if(x > T->data)
{
T->rc=insert(T->rc,x);
if(BF(T)==-2)
if(x>T->rc->data)
T=RR(T);
else
T=RL(T);
}
else
{
if(x<T->data)
{
T->lc=insert(T->lc,x);
if(BF(T)==2)
if(x < T->lc->data)
T=LL(T);
else
T=LR(T);
}
}
T->ht=height(T);
return(T);
}
}
int main()
{
struct node *root=NULL;
int ele;
char ch;
do
{
printf("\n Enter the value to be inserted in AVL: ");
scanf("%d",&ele);
root=insert(root,ele);
printf("\n Want to insert more elements? (y/n): ");
getchar();
scanf("%c",&ch);
}while(ch=='y' || ch=='Y');
printf("\n Press any key to print inorder traversal: ");
getchar();
inorder(root);
return 0;
}