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 373<br />

if cola.final nil th<strong>en</strong> begin<br />

{Si la cola no está vacía se actualizan los punteros}<br />

cola.final^.sigui<strong>en</strong>te:= nuevoNodo;<br />

cola.final:= nuevoNodo<br />

<strong>en</strong>d {th<strong>en</strong>}<br />

else begin<br />

{Actualización de punteros:}<br />

cola.principio:= nuevoNodo;<br />

cola.final:= nuevoNodo<br />

<strong>en</strong>d {else}<br />

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

Suprimir el primer elem<strong>en</strong>to<br />

Para definir SacarDeCola t<strong>en</strong>emos que considerar dos casos distintos:<br />

1. Que la cola sea unitaria, pues al sacar su único elem<strong>en</strong>to se queda vacía,<br />

con lo que hay que actualizar tanto su principio como su final.<br />

2. Que la cola t<strong>en</strong>ga longitud mayor o igual a dos, <strong>en</strong> cuyo caso sólo hay que<br />

actualizar el campo principio.<br />

A continuación se muestra la implem<strong>en</strong>tación del procedimi<strong>en</strong>to:<br />

procedure SacarDeCola(var cola: tCola);<br />

{PreC.: cola es no vacía}<br />

{Efecto.: se extrae el primer elem<strong>en</strong>to de cola}<br />

var<br />

apuntaAux : tApNodo;<br />

begin<br />

if cola.principio = cola.final th<strong>en</strong> begin<br />

{La cola es unitaria}<br />

apuntaAux:= cola.principio;<br />

Dispose(apuntaAux);<br />

cola.principio:= nil;<br />

cola.final:= nil<br />

<strong>en</strong>d {th<strong>en</strong>}<br />

else begin<br />

{Si Longitud(cola) >= 2:}<br />

apuntaAux:= cola.principio;<br />

cola.principio:= apuntaAux^.sigui<strong>en</strong>te;<br />

Dispose(apuntaAux)<br />

<strong>en</strong>d {else}<br />

<strong>en</strong>d; {SacarDeCola}

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

Saved successfully!

Ooh no, something went wrong!