2010-08-07 9 views
11

Abbiamo a che fare con un algoritmo simile più simile qui. Parte dell'algoritmo prevede la ricerca in ordine su un albero.Un albero non binario può essere percorso in ordine?

La cosa è che fino ad ora, non possiamo rendere quell'albero binario.

C'è un analogo all'ordine traversale per alberi non binari. In particolare, penso che ci sia, basta attraversare i nodi da sinistra a destra (e l'elaborazione del nodo padre solo una volta? ")

Qualche idea?

aggiornamento

Questo albero avrà in ogni nodo un piccolo grafico di n oggetti: ogni nodo avrà n figli (1 per ogni elemento nel grafico), ognuno dei quali sarà un altro grafico, quindi il suo "tipo di" ab albero, senza tutte le meccaniche di overflow - underflow. la traversata più simile in ordine sarebbe simile a una traversata orizzontale in entrata?

Grazie in anticipo.

risposta

9

Sì, ma è necessario definire l'ordine. Post e Pre order sono identici, ma inorder prende una definizione di come i rami si confrontano con i nodi.

+0

Buon punto. i sotto-alberi "a destra" e "a destra" (ei nodi in mezzo) potrebbero avere una generalizzazione, ma probabilmente è meglio elencare esplicitamente i requisiti in un caso come questo. –

0

Non esiste un semplice analogo della sequenza in ordine per alberi diversi da alberi binari (in realtà in ordine è un modo per ottenere elementi ordinati da un albero di ricerca binario).

È possibile trovare ulteriori dettagli in "L'arte della programmazione per computer" di Knuth, vol. 1, pagina 336.

Se la ricerca in ampiezza può essere utile al proprio scopo, è possibile utilizzarla.