es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Estructura de datos ideal para deshacer/rehacer pero con capacidad máxima.

La respuesta obvia sería una pila, pero hay una cosa que quiero implementar:

Eso es almacenar solo, digamos, las 100 ediciones más recientes.

Esto significa que, a partir del punto 100, cada vez que se realiza un cambio nuevo, se elimina la edición más antigua.

Pensé que esto se parecería a sacar elementos desde el fondo de la pila, pero siento que mezclar los dos es un poco confuso…

¿Alguna sugerencia sobre qué sería más ideal?

Edit: Acabo de descubrir la estructura de datos Circular Buffer y me di cuenta de que lo que estoy tratando de implementar probablemente sea FIFO, por lo que actualmente un CB es mi mejor opción.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en estructuras de datos, cola, pila y búfer circular, tu desafío es encontrar la estructura de datos más apropiada para almacenar las 100 ediciones más recientes.

    El requisito de eliminar la edición más antigua una vez que se alcanza el límite máximo de 100 implica un comportamiento de primero en entrar, primero en salir (FIFO), que no es típico de la estructura de datos de pila. Por lo tanto, una opción más apropiada sería utilizar una estructura de datos de cola.

    Sin embargo, por razones de rendimiento, parece que la estructura de datos de búfer circular (CB) es la mejor opción para este escenario. El Búfer Circular es un arreglo de tamaño fijo que se comporta como un círculo, de ahí su nombre. Tiene un puntero de cabeza y cola que se mueven alrededor del arreglo a medida que se agregan o eliminan nuevos elementos.

    En este caso, el CB tendría una capacidad máxima de 100, y cada vez que se realiza una nueva edición, se agregará al búfer en la posición señalada por la cabeza, y el puntero de la cabeza se incrementará. Si la cabeza es igual al tamaño del búfer, se restablecerá a 0 y se sobrescribirá la edición más antigua.

    Al hacer esto, las 100 ediciones más recientes se mantienen en el búfer y se sobrescriben continuamente las ediciones más antiguas, creando un comportamiento de FIFO.

    En general, la estructura de datos de Búfer Circular parece ser la opción más adecuada para este requisito.

Comments are closed.