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.

436 Capítulo 19. Tipos abstractos de datos<br />

procedure EscribirConj (conj: tConj);<br />

{Efecto: escribe <strong>en</strong> el output los elem<strong>en</strong>tos de conj}<br />

function EstaVacioConj(conj: tConj): boolean;<br />

{Dev. True (si conj = ∅) o False (<strong>en</strong> otro caso)}<br />

implem<strong>en</strong>tation<br />

{Repres<strong>en</strong>tación mediante listas <strong>en</strong>lazadas, con cabecera,<br />

ord<strong>en</strong>adas asc<strong>en</strong>d<strong>en</strong>tem<strong>en</strong>te y sin repeticiones}<br />

procedure CrearConj (var conj: tConj);<br />

begin<br />

New(conj);<br />

conj^.sig:= nil<br />

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

procedure DestruirConj (var conj: tConj);<br />

var<br />

listaAux: tConj;<br />

begin<br />

while conj nil do begin<br />

listaAux:= conj;<br />

conj:= conj^.sig;<br />

Dispose(listaAux)<br />

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

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

procedure AnnadirElemConj (elem: tElem; var conj: tConj);<br />

var<br />

parar, {indica el fin de la búsqueda, <strong>en</strong> la lista}<br />

insertar: boolean; {por si elem ya está <strong>en</strong> la lista}<br />

auxBuscar, auxInsertar: tConj;<br />

begin<br />

auxBuscar:= conj;<br />

parar:= False;<br />

repeat<br />

if auxBuscar^.sig = nil th<strong>en</strong> begin<br />

parar:= True;<br />

insertar:= True<br />

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

else if auxBuscar^.sig^.info >= elem th<strong>en</strong> begin<br />

parar:= True;<br />

insertar:= auxBuscar^.sig^.info > elem<br />

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

else

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

Saved successfully!

Ooh no, something went wrong!