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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

17.3. Colas 371<br />

17.3.1 Definición del tipo cola<br />

es:<br />

Las colas, como listas que son, podrían definirse de la manera habitual, esto<br />

type<br />

tElem = char; {o lo que corresponda}<br />

tCola = ^tNodoCola;<br />

tNodoCola = record<br />

cont<strong>en</strong>ido: tElem;<br />

sigui<strong>en</strong>te: tCola<br />

<strong>en</strong>d; {tNodoCola}<br />

Sin embargo, algunas operaciones, como poner un elem<strong>en</strong>to <strong>en</strong> una cola, no<br />

resultan efici<strong>en</strong>tes, debido a que debe recorrerse la lista <strong>en</strong> su totalidad para llegar<br />

desde su primer elem<strong>en</strong>to hasta el último. Por ello, suele usarse otra definición,<br />

considerando una cola como un par de punteros:<br />

type<br />

tElem = char; {o lo que corresponda}<br />

tApNodo = ^tNodoCola;<br />

tNodoCola = record<br />

cont<strong>en</strong>ido: tElem;<br />

sigui<strong>en</strong>te: tApNodo<br />

<strong>en</strong>d; {tNodoCola}<br />

tCola = record<br />

principio: tApNodo;<br />

final: tApNodo<br />

<strong>en</strong>d; {tCola}<br />

Con esta definición de colas, cualquier operación que altere la posición de los<br />

nodos extremos de la lista deberá actualizar los punteros principio y final; sin<br />

embargo, esto resulta v<strong>en</strong>tajoso <strong>en</strong> comparación con la obligatoriedad de recorrer<br />

toda la cola para añadir un nuevo elem<strong>en</strong>to.<br />

17.3.2 Operaciones básicas<br />

Veamos cómo implem<strong>en</strong>tar las operaciones básicas con colas sigui<strong>en</strong>do la<br />

definición anterior.<br />

Creación de una cola vacía<br />

Para crear una cola se necesita iniciar a nil los campos principio y final<br />

del registro. Nada más fácil:

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

Saved successfully!

Ooh no, something went wrong!