[C] Albero binario
Ciao a tutti!
Volevo chiedervi se qualcuno può confermarmi la risposta a questo quesito riguardante la programmazione in C
Testo:
Supponendo di avere un albero binario di ricerca in cui il nodo radice contiene il valore 43, il figlio sinistro N1 del nodo radice contiene il valore 17 ed il figlio destro N2 del nodo radice contiene il valore 77, la chiamata f(radice), dove radice è un puntatore al nodo radice dell'albero, stampa a video:
a) 43 17 77
b) 77 43 17
c) 17 77 43
d) 17 43 77
Non avendo la soluzione non so qual'è la risposta giusta
Grazie mille
Buona serata
Ciaoo
Volevo chiedervi se qualcuno può confermarmi la risposta a questo quesito riguardante la programmazione in C

Testo:
Supponendo di avere un albero binario di ricerca in cui il nodo radice contiene il valore 43, il figlio sinistro N1 del nodo radice contiene il valore 17 ed il figlio destro N2 del nodo radice contiene il valore 77, la chiamata f(radice), dove radice è un puntatore al nodo radice dell'albero, stampa a video:
a) 43 17 77
b) 77 43 17
c) 17 77 43
d) 17 43 77
#include <stdio.h> struct node { int v; struct node *sx; struct node *dx; }; void f(struct node *p) { if (p!=NULL) { printf("%d ", p->v); f(p->sx); f(p->dx); } }
Non avendo la soluzione non so qual'è la risposta giusta

Grazie mille
Buona serata
Ciaoo

Risposte
Nessuna idea? Che cosa fa il codice?
Ciao!
Secondo me è la a, perché
Prima richiamo p->v e quindi la radice, cioè il 43, poi richiamo il figlio sinistro, quindi 17 ed infine il figlio destro quindi 77.
Può essere giusto?
Grazie
Ciaoo
Secondo me è la a, perché
printf("%d ", p->v); f(p->sx); f(p->dx);
Prima richiamo p->v e quindi la radice, cioè il 43, poi richiamo il figlio sinistro, quindi 17 ed infine il figlio destro quindi 77.
Può essere giusto?
Grazie
Ciaoo

Sì, è corretto.