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.

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

lista <strong>en</strong>lazada<br />

’a’ ’e’ ’i’ ’o’ ’u’<br />

Figura 17.15. Una lista doblem<strong>en</strong>te <strong>en</strong>lazada.<br />

type<br />

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

tListaDobleEnlace = ^tNodo;<br />

tNodo = record<br />

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

anterior, sigui<strong>en</strong>te: tListaDobleEnlace<br />

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

La figura 17.15 repres<strong>en</strong>ta una lista doblem<strong>en</strong>te <strong>en</strong>lazada. Con los nodos<br />

primero y último de la lista se pued<strong>en</strong> tomar dos posturas:<br />

1. Considerar que el anterior del primer nodo es nil, y que el sigui<strong>en</strong>te al<br />

último también es nil.<br />

En este caso resulta útil considerar la lista como un registro con dos compon<strong>en</strong>tes:<br />

principio y final. Del mismo modo que <strong>en</strong> la implem<strong>en</strong>tación de<br />

tCola.<br />

2. Considerar que el anterior del primero es el último y que el sigui<strong>en</strong>te al<br />

último es el primero.<br />

En este caso, estrictam<strong>en</strong>te hablando, no se obti<strong>en</strong>e una lista, sino un anillo<br />

o lista circular que carece de principio y de final.<br />

Un análisis más profundo de esta estructura rebasa los límites de este libro; no<br />

obstante, <strong>en</strong> el apartado de com<strong>en</strong>tarios bibliográficos se citan algunas refer<strong>en</strong>cias<br />

con las que profundizar <strong>en</strong> el estudio de este tipo de datos.

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

Saved successfully!

Ooh no, something went wrong!