Witam, chciałem napisać funkcje dodającą na bst (insert) i przeglądającą (inorder). Elementy mają sie dodawać, dopóki nie wpisze -999, wtedy pętla sie przerwie. Program sie kompiluje, po podaniu elementów niby działa, ale po wywołaniu inorder nic nie wyswietla. Możecie rzucic okiem gdzie jest błąd? Dziękuje z góry.
#include<stdio.h>
#include<stdlib.h>
struct eldrzewa
{
int klucz;
struct eldrzewa *lewy;
struct eldrzewa *prawy;
};
struct eldrzewa *korzen=NULL;
void inorder(struct eldrzewa *korzen)
{
//printf("Wchodze do inorder: ");
if (korzen!=NULL)
{
inorder(korzen->lewy);
printf("%d ",korzen->klucz);
inorder(korzen->prawy);
}
}
void insert(struct eldrzewa *korzen, int klucz)
{
if (korzen==NULL)
{
korzen=(struct eldrzewa*)malloc(sizeof(struct eldrzewa));
korzen->klucz=klucz;
korzen->lewy=NULL;
korzen->prawy=NULL;
} else
if (klucz>=(korzen->klucz)) insert(korzen->prawy,klucz);
if (klucz<(korzen->klucz)) insert(korzen->lewy,klucz);
}
int main()
{
int klucz,licznik=0,i;
do
{
scanf("%d",&klucz);
if (klucz==-999) break;
else insert(korzen,klucz);
} while (1);
printf("\n");
inorder(korzen);
free(korzen);
return 0;
}