Witam postanowiłem pobawić się trochę strukturami trochu mnie przystawiło w drzewie bst nie wiem gdzie tkwi błąd.Mógłby mnie ktoś skorygować??Program się wiesza przy dodaniu elementu nie wiem co kompilatorowi się tam nie podoba.Pisałem to według książki do algorytmów Cormena.A oto kod programu.Prosiłbym o pomoc.Kod w Ansi C
#include<stdio.h>
#include<stdlib.h>
struct element
{
int key;
struct element *right;
struct element *left;
struct element *p;
};
struct element *Tree_insert(struct element *root,struct element *z);
main()
{
struct element *root=NULL,*nowy=NULL;
int liczba;
char z;
while(1)
{
puts("co chcesz zrobic\n");
puts("d-dodac nowy element\n");
z=getchar();
switch(z)
{
case 'd':
puts("Podaj liczbe do wstawienia\n");
scanf("%d",&liczba);
nowy=(struct element*)malloc(sizeof(struct element));
nowy->key=liczba;
root=Tree_insert(root,nowy);
break;
case 'q':
return 0;
}
}
}
struct element *Tree_insert(struct element *root,struct element *z)
{
struct element *y,*x;
x=root;
while(x!=NULL)
{
y=z;
if(z->key<x->key)
x=x->left;
else
x=x->right;
}
z->p=y;
if(y==NULL)
root=z;
if(z->key<y->key)
y->left=z;
else y->right=z;
return root;
}