Questo e' il codice ma non riesco ad uscirne fuori, il primo elemento lo inserisce dal secondo si blocca e va in loop, almeno mi sembra. Dov'è l'errore ?
#include<stdlib.h>
#include<stdio.h>
typedef struct tree_el {
int val;
struct tree_el *rtree;
struct tree_el *ltree;
}btree;
btree* insert(btree* albero, int val){
int posizione=0;
if(albero==NULL) {
albero = (btree*)malloc(sizeof(btree));
albero->rtree==NULL;
albero->ltree==NULL;
albero->val=val;
printf("\t Valore inserito !");
return albero;
}
else{
printf("\n\t Inserisci la posizione (sinistra = 1, destra = 0): ");
scanf("%d",&posizione);
if(posizione==1)
albero->ltree = insert(albero->ltree, val);
else if(posizione==0)
albero->rtree = insert(albero->rtree, val);
else{
printf("\n Errore");
}
}
}
int main(void){
btree* a=NULL;
int n;
int val;
do{
printf("\n\t Inserisci il valore (digita 0 per finire l'inserimento) : ");
scanf("%d",&n);
if(n!=0)
a = insert(a,n);
}while(n!=0);
return 1;
}