Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Listas Enlazadas
Las pilas tienen reglas estrictas para referenciar los datos almacenados en ellas,
además, las operaciones de recuperación son por naturaleza destructivas; es decir, acceder a
un elemento en una pila requiere sacarlo y, a menos que se almacene en otro sitio, se
destruye. Las pilas también requieren, al menos en concepto, de una zona de memoria
contigua para operar.
Al contrario que una pila, una lista enlazada puede acceder a su almacenamiento de
una forma aleatoria, ya que cada trozo de información lleva con él un enlace al siguiente
elemento de la cadena. Una lista enlazada requiere una estructura de datos compleja,
mientras que una pila puede operar con elementos simples o complejos. Una operación de
recuperación en una lista enlazada no elimina ni destruye el elemento de la lista; es
necesario añadir una operación específica de borrado.
Las listas enlazadas se utilizan para dos propósitos. El primero es crear arreglos de
tamaño desconocido en memoria. Si se conoce previamente la cantidad de almacenamiento,
se puede utilizar un simple arreglo; pero si no se conoce el tamaño real de una lista,
entonces hay que utilizar una lista enlazada. La segunda utilización de una lista enlazada es
en los archivos de almacenamiento en disco de bases de datos. Las listas enlazadas
permiten insertar y borrar elementos rápida y fácilmente sin volver a colocar el archivo
completo en el disco. Por estas razones, las listas enlazadas se utilizan extensamente en el
software de administración de bases de datos.
Las listas enlazadas pueden ser de dos tipos: simplemente enlazadas, o doblemente
enlazadas. Una lista simplemente enlazada contiene un enlace al siguiente elemento. Una
lista doblemente enlazada contiene enlaces al siguiente elemento y al elemento anterior en
la lista. El tipo lista que se utilice dependerá de la aplicación.
MC. JJAP 1
Estructuras de datos Listas enlazadas
Pueden ocurrir tres posibles situaciones cuando se inserta un elemento en una lista
simplemente enlazada. Primero, el elemento se puede convertir en el nuevo primer
elemento; segundo, puede ser insertado entre otros dos elementos; tercero, se puede
convertir en el último elemento. Las siguientes figuras ilustran como cambian los enlaces
en cada uno de los casos.
Nuevo elemento
nuevo
NULL
nuevo
enlace
nuevo
enlace
MC. JJAP 2
Estructuras de datos Listas enlazadas
nuevo
NULL
Elemento borrado
MC. JJAP 3
Estructuras de datos Listas enlazadas
Elemento borrado
NULL NULL
Una lista que tiene dos enlaces en lugar de sólo uno tiene dos grandes ventajas.
Primero, la lista se puede leer en cualquier dirección. Esto no sólo simplifica la ordenación
de la lista, sino también, en el caso de una base de datos, permite a un usuario explorar la
lista en cualquier dirección. Segundo, ya que con el enlace hacia delante o con el enlace
hacia detrás se puede leer una lista completa, si un enlace no es válido, la lista se puede
reconstruir usando el otro enlace. Esto tiene sentido en caso de un fallo del equipo.
Se pueden realizar tres operaciones primarias en una lista doblemente enlazada para
insertar un nuevo elemento: insertar al principio, insertar en medio e insertar al último.
Construir una lista doblemente enlazada es similar a construir una lista simplemente
enlazada, excepto que la estructura debe tener un lugar para almacenar dos enlaces, uno
hacia delante y uno hacia atrás. Las siguientes figuras ilustran el proceso de insertar un
nuevo elemento en una lista doblemente enlazada.
MC. JJAP 4
Estructuras de datos Listas enlazadas
Nuevo
NUL L NULL
NULL NULL
Nuevo
NUL L
Nuevo
NULL NULL
MC. JJAP 5
Estructuras de datos Listas enlazadas
Nuevo
NULL
NULL
La operación para borrar un elemento de la lista, al igual que las anteriores, también
tiene los mismos tres casos. Las siguientes figuras los ilustran.
Elemento borrado
Elemento borrado
Elemento borrado
MC. JJAP 6