En el que computa, una estructura de datos persistentes del es una estructura de datos que preserva siempre la versión previa de sí mismo cuando se modifica; tales estructuras de datos son con eficacia el inmutable, pues sus operaciones (visiblemente) no ponen al día la estructura sobre el terreno, sino que por el contrario rinden siempre una nueva estructura actualizada.
Una estructura de datos es el parcialmente persistente si todas las versiones pueden ser tenido acceso pero solamente la más nueva versión puede ser modificada. Los datos la estructura es el completamente persistente si cada versión puede ser ambas alcanzadas y modificado. Si hay también un meld o una operación de la fusión que puede crear una nueva versión a partir de dos versiones previas, la estructura de datos se llama confluently persistente. Las estructuras que no son persistentes se llaman el efímero.
Estos tipos de estructuras de datos son particularmente comunes en el la programación funcional lógica de y, y en un programa puramente funcional todos los datos son inmutables, tan todos las estructuras de datos son automáticamente completamente persistentes. Las estructuras de datos persistentes se pueden también crear usar la puesta al día sobre el terreno de datos y éstas pueden, utilizar generalmente menos espacio del tiempo o de almacenaje que sus contrapartes puramente funcionales.
Mientras que la persistencia se puede alcanzar por el copiado simple, esto es ineficaz a tiempo y espacio, porque la mayoría de las operaciones realizan solamente pequeños cambios a una estructura de datos. Un mejor método es explotar la semejanza entre las nuevas y viejas versiones para compartir la estructura entre ellas, tales como usar la misma sub-estructura en un número de estructuras arborescentes sin embargo, porque llega a ser rápido infeasible para determinar la parte de cuántas versiones previas que las partes de la estructura, y porque es a menudo deseable desechar viejas versiones, esto hace necesario un ambiente con la colección de basura .
Quizás la estructura de datos persistentes más simple es la lista solo-ligada o el contra - lista basada, una lista simple del de objetos formados por cada uno que lleva una referencia al siguiente en la lista. Esto es persistente porque podemos tomar una cola del de la lista, significando los artículos pasados del k para un cierto k, y agregamos nuevos nodos encendido al frente de él. La cola no será duplicada, en lugar de distribución entre la vieja lista y la nueva lista. Siempre y cuando el contenido de la cola es inmutable, éste que comparte será invisible al programa.
Muchas estructuras de datos referencia-basadas comunes, tales como árboles Rojo-negros y coletas se pueden adaptar fácilmente para crear una versión persistente. Las contrapartes persistentes una al arsenal son la estructura de datos de VList descrita en 2002 por Phil Bagwell.
-----
.
| Random links: | Montaje Kinabalu | Marrasquino | Fachada | Yo primero y el Gimme Gimmes | Paul Blair |