La lista enlazada es un TDA que nos permite almacenar datos de una forma organizada, al igual que los vectores pero, a diferencia de estos, esta estructura es dinámica, por lo que no tenemos que saber "a priori" los elementos que puede contener.
Los elementos de una lista, suelen recibir también el nombre de nodos de la lista.
Es un conjunto ordenado de elementos homogéneos en la que no hay restricciones de acceso,
cualquier elemento es igualmente accesible en un momento dado.
La introducción y eliminación
de elementos puede realizarse en cualquier posición de la misma.
Se clasifica a la Lista dentro de los contenedores como una secuencia. Cada
elemento de una estructura secuencial tan sólo tiene relación con un anterior y un siguiente.
Las listas por su encadenamiento pueden ser simplemente encadenadas (navegación en una sola
dirección) o doblemente encadenadas (navegación en ambas direcciones).
Además cada uno de estos tipos puede estar implementado en forma lineal o circular. Siendo la
primera sin encadenamiento del último con el primero y la segunda con un encadenamiento del
último con el primero, dándole la característica de navegación continuada.
Listas Simples:
struct lista {
gint dato;
lista *siguiente;
};
Lineales:
Cada nodo, contiene un único apuntador hacia el siguiente nodo, por lo cual hace de él una
estructura muy eficiente, ya que el último de la lista apunta hacia null, por ello, es fácil hacer
recorridos directos.
Circulares:
Este tipo de lista, es sólo una extensión de las listas simplemente enlazada, con la diferencia que el
último elemento se enlaza al primer elemento de la lista, lo cual permite el recorrido en forma de
anillo
Listas Dobles:
struct lista {
gint dato;
lista *anterior;
lista *siguiente;
};
Lineales:
Esta lista se caracteriza por que sus nodos contienen dos punteros, uno hacia el nodo siguiente y
otro hacia el nodo anterior.
Circulares:
Quizá este tipo de lista, sea la más compleja, ya que es la combinación de la lista circular y las
doblemente enlazadas, ya que es una lista doblemente enlazada donde el primer elemento se
conecta con el último y viceversa.




No hay comentarios.:
Publicar un comentario