[C] Albero binario

floppyes
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


#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
apatriarca
Nessuna idea? Che cosa fa il codice?

floppyes
Ciao!

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 :)

apatriarca
Sì, è corretto.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.