09.05.2013 Views

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

17.4.<br />

Árboles binarios 385<br />

Recorrido Cola de espera<br />

[ ] [T]<br />

[A] [T1, T2]<br />

[A,B] [T2,D,E]<br />

[A,B,C] [D,E,F,T3]<br />

[A,B,C,D] [E,F,T3]<br />

[A,B,C,D,E] [F,T3]<br />

[A,B,C,D,E,F] [T3]<br />

[A,B,C,D,E,F,G] [H]<br />

[A,B,C,D,E,F,G,H] [ ]<br />

Tabla 17.1.<br />

var<br />

arbolesEnEspera: cola de árboles<br />

...<br />

CrearCola(arbolesEnEspera);<br />

PonerEnCola(arbolDato, arbolesEnEspera);<br />

donde una cola de árboles se concreta mediante el tipo tApNodo (véase el apartado<br />

17.3), si<strong>en</strong>do sus elem<strong>en</strong>tos tElem del tipo tArbol.<br />

La segunda acción consiste <strong>en</strong> la serie de pasos de la figura 17.13.<br />

Naturalm<strong>en</strong>te, todo el peso del procedimi<strong>en</strong>to recae <strong>en</strong> el procesado de los<br />

árboles <strong>en</strong> espera. Para ello hay que leer la raíz del primer árbol de la cola<br />

(mi<strong>en</strong>tras ésta no esté vacía), sacarlo de ella y añadir al final de la cola sus<br />

subárboles hijos. Por tanto, la acción Procesar los árboles <strong>en</strong> espera se puede<br />

refinar de la sigui<strong>en</strong>te forma:<br />

mi<strong>en</strong>tras arbolesEnEspera nil hacer<br />

Sacar el primer árbol de la cola<br />

Procesar su nodo raíz<br />

Poner <strong>en</strong> cola los subárboles no vacíos<br />

El refinami<strong>en</strong>to de cada una de las tareas anteriores es directa haci<strong>en</strong>do uso<br />

de las operaciones descritas para el tipo cola.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!