PDA

View Full Version : Algoritmo visita albero ordinato


sharkkk
15-12-2014, 18:47
Ciao a tutti,

qualcuno conosce se c'e dello pseudocodice abbastanza esplicativo per una visita di un albero ordinato non binario?

Praticamente partendo dalla radice, voglio scorrere tutti i nodi figli (solo una volta) partendo da sinistra.

Ho trovato numerose fonti ma non abbastanza esplicative, forse sbaglio :muro:


esempio:

radice A
figli di A: B - C
figli di B: D - E
figli di C: F - G

sequenza output: A B D E C F G (come si chiama questo tipo di visita?)

oNaSsIs
15-12-2014, 19:47
Intendi una ricerca in profondità (http://it.wikipedia.org/wiki/Ricerca_in_profondit%C3%A0)?

Oceans11
15-12-2014, 19:51
Visita in preordine.

Il modo più semplice è fare una funzione ricorsiva.
Ti scrivo il metodo in java, tanto per farla breve

public void visitaPreordine() {
if (this.root != null) {
return;
}
System.out.println(this.root + " ");
this.root.sinistro.visitaPreordine();
this.root.destro.visitaPreordine();
}

sharkkk
15-12-2014, 21:15
grazie oceans11.

nel caso pero non sia un albero binario?

Oceans11
16-12-2014, 10:10
grazie oceans11.

nel caso pero non sia un albero binario?

cicli (in modo ordinato) la lista dei nodi figlio e per ognuno di essi richiami il metodo.

quindi al posto di:
this.root.sinistro.visitaPreordine();
this.root.destro.visitaPreordine()
farai tipo:
for (Nodo figlio : this.root.getFigli()) {
figlio.visitaPreordine();
}