delphi generics data-structures delphi-2009 linked-list

Lista de enlaces genéricos para Delphi 2009



generics data-structures (4)

Estaba buscando en Generics.Collections y noté que no había una lista vinculada. Claro que son fáciles de hacer, pero pensé que era extraño que no hubiera ninguno (o simplemente lo extrañé). ¿Las listas enlazadas están desactualizadas en comparación con las nuevas estructuras de datos modernas, o existe la necesidad de una lista genérica vinculada? ¿Alguien sabe de uno?


¿No es eso para lo que tStringList es?

(agachado)

En realidad, cualquier tList genérica funciona bien como una lista vinculada y proporciona la mayor parte de la funcionalidad necesaria. La antigua técnica transmitida desde nuestros antepasados ​​de almacenar un puntero a la memoria en cada registro, y navegar a eso ha sido reemplazado fácilmente por arreglos dinámicos y hacer cosas ... más genéricamente.


En los viejos tiempos, casi cualquier pieza de software serio contenía listas vinculadas o árboles.

No he usado mucho las listas enlazadas, pero los árboles son otra historia.

Con la introducción de matrices dinámicas, no hay tanta necesidad de listas vinculadas. Pero puedo imaginar que desea usarlo si su estructura de datos se cambia a menudo (agregar + eliminar).

Puede crear fácilmente una lista vinculada genérica usted mismo, utilizando una clase contenedora y registros para los elementos.


No conozco ninguna lista genérica enlazada en Delphi RTL existente.

Sin embargo, siguen siendo muy útiles como estructura de datos. Especialmente si incluye variantes en una lista vinculada, como un árbol b o un árbol binario. A diferencia de una lista normal, una lista vinculada se puede expandir, editar o modificar sin mover datos en la memoria. Son muy fáciles de versionar, y funcionan bien en código puramente funcional que no permite la mutación de datos existentes. Por lo tanto, sigue siendo una estructura de datos muy útil.