Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.
da mame83 » mer set 21, 2011 8:54 am
Ciao a tutti sono nuovo di questo forum ed ho questo problema: dato un albero binario devo creare una funzione ricorsiva in C che mi restituisce 0 se è un abr e 1 se non lo è. L idea che aveo pensato è quella di utilizzare la visita in ordine. se quest ultima è una successione ordinata crescente di valori allora è un ABR. Nella funzione che io creo gli passo due valori e di volta in volta verifico se il primo valore è minore del secondo, se si vado avanti se no mi fermo e ritorno 1.
Il secondo parametro lo inizializzo ad un valore piu grande che non posso mai inserire nell albero.
L output del mio programma invece mi resitutisce sempre 1.
Spero di essere stato chiaro e che qualcuno mi aiuti GRAZIE.
- Codice: Seleziona tutto
int ABR(nod *radice, int *b)/*0 se è un abr, 1 se non lo è*/
{
int confronto;
if (radice!=NULL)
{
confronto=ABR(radice->sinistro,&(radice->info));
printf("valore di radice e' %d \n",radice->info);
printf("valore di b e' %d \n",*b);
if (radice->info>(*b))
return 1;/*dobbiamo uscire visto che il precedente è minore del successivo*/
else
confronto=0; /*vado avanti*/
confronto=ABR(radice->destro,&(radice->info));
}
return confronto;
}
-
mame83
- Neo Iscritto
-
- Messaggi: 2
- Iscritto il: mar set 20, 2011 7:17 pm
da mame83 » mer set 21, 2011 1:52 pm
ragazzi nessuno mi sa aiutare!!!!!!!!! è troppo difficle anche per voi?
-
mame83
- Neo Iscritto
-
- Messaggi: 2
- Iscritto il: mar set 20, 2011 7:17 pm
Torna a Programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 2 ospiti