Ventajas y desventajas de las listas enlazadas
Ventajas
- Es muy sencillo implementar pilas y colas usando listas enlazadas.
- Las tablas hash (usadas en diccionarios o mapas) tienen sus elementos distribuidos en un array gigante, donde los elementos colisionados pueden estar almacenados en una lista enlazada. Podrían estar almacenados en un array dinámico, pero el proceso de rehashing (cuando cambian las dimensiones del array gigante de la tabla hash) es más eficiente reusando los nodos de la lista enlazada.
- Cuando tienes un conjunto de elementos del que quieres remover algunos elementos dependiendo de alguna condición. Removerlos de una lista enlazada consiste simplemente en destruir el elemento preciso y actualizar los enlaces de sus nodos siguiente y anterior adecuadamente. Removerlos de un array dinámico implicaría recorrer todos los elementos siguientes en cada eliminación, mucho menos eficiente.
Desventajas
- Utilizan más memoria que los arreglos debido al almacenamiento utilizado por sus punteros.
- Las dificultades surgen en las listas enlazadas cuando se trata de invertir el desplazamiento. Por ejemplo, las listas enlazadas individualmente son incómodas para navegar hacia atrás y mientras que las listas enlazadas doblemente son algo más fáciles de leer, la memoria se desperdicia en la asignación de espacio para un puntero hacia atrás.
- Los nodos en una lista enlazada deben leerse en orden desde el principio ya que las listas enlazadas son inherentemente de acceso secuencial.
- Los nodos se almacenan de forma no contigua, lo que aumenta considerablemente el tiempo requerido para acceder a elementos individuales dentro de la lista, especialmente con un caché de CPU.
Comentarios
Publicar un comentario