#include #include struct cvor { int broj; struct drvo *levi,*desni; }; #define novi(x) x=(struct cvor *) malloc(sizeof(struct cvor)) void dodaj(struct cvor **,int); struct cvor* form(); void ispis(struct cvor*); main() { struct cvor *koren; int n,m; koren=form(); ispis(koren); } void dodaj(struct cvor **p,int k) { struct cvor *temp,*pom1,*pom2; novi(temp); if(!temp) { printf("\nGreska pri alokaciji memorije\n"); exit(0); } temp->broj=k; temp->levi=temp->desni=NULL; if (!(*p)) *p=temp; else { pom1=*p; while(pom1) { pom2=pom1; if(k < pom1->broj) pom1=pom1->levi; else pom1=pom1->desni; } if(k < pom2->broj) pom2->levi=temp; else pom2->desni=temp; } } struct cvor* form() { struct cvor *koren; int k; koren=NULL; scanf("%d",&k); while(k) { dodaj(&koren,k); scanf("%d",&k); } return koren; } void ispis(struct cvor *p) { if (p) { ispis(p->levi); printf("%5d",p->broj); ispis(p->desni); } }