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.

362 Capítulo 17. Estructuras de datos recursivas<br />

New(nuevoNodo);<br />

nuevoNodo^.cont<strong>en</strong>ido:= nuevoDato;<br />

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

apAux^.sigui<strong>en</strong>te:= nuevoNodo<br />

Uni<strong>en</strong>do el bucle, para alcanzar el k-ésimo nodo, con las asignaciones anteriores<br />

se obti<strong>en</strong>e la implem<strong>en</strong>tación completa del procedimi<strong>en</strong>to InsertarK:<br />

procedure InsertarK(k: integer; nuevoDato: tElem; var lista: tLista);<br />

{PreC.: k ≥ 1 y lista ti<strong>en</strong>e al m<strong>en</strong>os k nodos}<br />

{Efecto: nuevoDato se inserta tras el k-ésimo nodo de lista}<br />

var<br />

nuevoNodo, apAux: tLista;<br />

i: integer;<br />

begin<br />

apAux:= lista;<br />

{El bucle avanza apAux hasta el nodo k}<br />

for i:= 1 to k-1 do<br />

apAux:= apAux^.sigui<strong>en</strong>te;<br />

{Actualización de punteros}<br />

New(nuevoNodo);<br />

nuevoNodo^.cont<strong>en</strong>ido:= nuevoDato;<br />

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

apAux^.sigui<strong>en</strong>te:= nuevoNodo<br />

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

Son muy frecu<strong>en</strong>tes las situaciones <strong>en</strong> las que se accede a una lista sólo a<br />

través de su primer o último elem<strong>en</strong>to. Por esta razón ti<strong>en</strong><strong>en</strong> particular interés<br />

las implem<strong>en</strong>taciones de listas <strong>en</strong> las que el acceso está restringido de esta forma,<br />

si<strong>en</strong>do las más importantes las pilas y las colas. A continuación se defin<strong>en</strong> estos<br />

tipos de listas junto con determinadas operaciones asociadas: se dará su repres<strong>en</strong>tación<br />

y las operaciones de modificación y acceso básicas, y se pres<strong>en</strong>tarán<br />

ejemplos donde se vea el uso de las mismas.<br />

17.2 Pilas<br />

Una pila es un tipo de lista <strong>en</strong> el que todas las inserciones y eliminaciones de<br />

elem<strong>en</strong>tos se realizan por el mismo extremo de la lista.<br />

El nombre de pila procede de la similitud <strong>en</strong> el manejo de esta estructura<br />

de datos y la de una “pila de objetos”. Estas estructuras también son llamadas<br />

listas LIFO, 1 acrónimo que refleja la característica más importante de las pilas.<br />

1 Del inglés Last-In-First-Out, es decir, el último <strong>en</strong> <strong>en</strong>trar es el primero <strong>en</strong> salir.

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

Saved successfully!

Ooh no, something went wrong!