Buscar este blog

Mostrando entradas con la etiqueta Recorrido inorden. Mostrar todas las entradas
Mostrando entradas con la etiqueta Recorrido inorden. Mostrar todas las entradas

16 de enero de 2010


Recorrido inorden
El algoritmo de corrido inorden también usa una variable puntero PTR, que contendrá la posición del nodo N que se está examinando, y un array PILA, que mantendrá las direcciones de los nodos que queden por procesa. De hecho, en este algoritmo, un nodo sólo se procesa cuando se saca de la PILA.

ALGORRIMO: INOR (INFO, IZQ,DER, RAIZ)
Un árbol binario está en memoria. Este algoritmo hace un recorrido inorden de T,
 aplicando una operación PORCESO a cada uno de sus nodos. 
Se usa en array PILA para mantener temporalmente las direcciones de los nodos.
1.- [meter NULO en PILA e inicializar PTR]
Hacer SUP:=1, PILA [1], PILA [1]:=NULO y PTR :=RAIZ
2.- Repetir mientras que PTR ≠NULO:[meter el camino izquierdo en PILA ].
(a) hacer SUP:=SUP+1 y PILA +1 y PILA [SUP]:=PTR [guardar nodo].
(b) hacer PTR:=PTR:=IZQ [PTR],[Actualizar PTR].
3.- hacer PTR:=PILA y SUP:=SUP=:=SUP-1. [sacar nodo de PILA].
4.-  repetir pasos 5 a 7 mientras PTR ≠NULO:[vuelta atrás].
5.- aplicar el PROCESO a INFO[PTR].
6.- [¿hijo derecho?]. si DER [PTR]≠NULO entonces:
(a) hacer PTR :=DER[PTR].
(b)ir al paso 2
[Fin de condicional].
7.- hacer PTR:=PILA [SUP] Y SUP:=SUP-1. [sacar nodo].
[Fin del bucle del paso 4]
8.-salir.