Manugal
11-06-2006, 21:26
Ciao a tutti!
Non ho capito bene a che serve usare una coda per effettuare la visita di un albero generale per livelli. Ad esempio in questo piccolo pezzo di codice è implementata la visita per livelli (non so se è esatta):
void visita (gtree t){
coda q;
gtree aux,tmp;
init(q);
if (!t) enqueue(q,t);
while(!empty(q)){
aux = dequeue(q);
printf("%d",aux->dato);
tmp = aux->lista_fratelli
while(!aux){
enqueue(q,aux);
aux = aux->lista_fratelli;
}
if (!(aux->primo_figlio))
enqueue(q,aux->primo_figlio);
}
}
Non riesco a capire bene cosa accade nella coda ad ogni iterazione. Grazie.
Non ho capito bene a che serve usare una coda per effettuare la visita di un albero generale per livelli. Ad esempio in questo piccolo pezzo di codice è implementata la visita per livelli (non so se è esatta):
void visita (gtree t){
coda q;
gtree aux,tmp;
init(q);
if (!t) enqueue(q,t);
while(!empty(q)){
aux = dequeue(q);
printf("%d",aux->dato);
tmp = aux->lista_fratelli
while(!aux){
enqueue(q,aux);
aux = aux->lista_fratelli;
}
if (!(aux->primo_figlio))
enqueue(q,aux->primo_figlio);
}
}
Non riesco a capire bene cosa accade nella coda ad ogni iterazione. Grazie.