Joaquín, parte de este staff, nos hizo el favor de crear este enunciado ya que controla a la perfección el tema.
Solución:
Las listas enlazadas ofrecen varias ventajas sobre las estructuras de datos comparables, como static o arreglos que se expanden dinámicamente.
- LinkedLists no requiere bloques contiguos de memoria y, por lo tanto, pueden ayudar a reducir la fragmentación de la memoria
- LinkedLists admite la eliminación eficiente de elementos (las matrices dinámicas generalmente fuerzan un cambio en todos los elementos).
- LinkedLists admite la adición eficiente de elementos (las matrices dinámicas pueden causar una reasignación + copia si una adición en particular excede la capacidad actual)
Cualquier lugar donde estas ventajas serían significativamente valiosas para un programa (y las desventajas de una LinkedList fueran insignificantes) sería un lugar para usar una LinkedList.
Un ejemplo del mundo real sería una cola FIFO. un simple array-basado en la lista es bastante malo porque necesita agregar en un extremo y eliminar en el otro extremo, y una de esas operaciones será O (n) con un array-basado en lista (a menos que agregue lógica adicional para trabajar con un índice de inicio Y final), mientras que ambos son O (1) con una lista vinculada sin esfuerzo adicional.
Las listas vinculadas (juntas con una tabla hash) son realmente útiles para las cachés LRU.
Cada Get necesita colocar un nodo al frente de la lista, una operación que es realmente económica con las listas enlazadas.
Nos encantaría que puedieras mostrar esta noticia si te valió la pena.