Saltar al contenido

Crecer en orden lógico

El deque tiene capacidad 4, está lleno, con inicio 2. Las posiciones físicas guardan:

posición 0 1 2 3
valor C D A B

El orden lógico, desde inicio, es A, B, C, D. Hay que crecer a capacidad 8. Si se copian las posiciones físicas tal cual (0, 1, 2, 3 al 0, 1, 2, 3), y se deja inicio en 2, el orden lógico se rompe: tras B vendrían las posiciones vacías 4 a 7.

Crecer un deque circular de capacidad 4 a 8Tres filas. Primera: capacidad 4 con las posiciones 0 a 3 guardando C, D, A, B e inicio 2; el orden lógico es A, B, C, D. Segunda: copiando las posiciones tal cual a una capacidad de 8 y dejando inicio 2, el orden es A, B y luego la posición 4, que está vacía: el orden se rompe. Tercera: copiando en orden lógico A, B, C, D a las posiciones 0 a 3 y poniendo inicio en 0, el orden se mantiene y quedan libres las posiciones 4 a 7.Antes: capacidad 4, inicio 2C0D1A2B31234ordeninicioCopia tal cual a capacidad 8, con inicio 2: se rompeC0D1A2B3456712ordeniniciotras B viene la posición 4, vacíaCopia en orden lógico, con inicio 0: bienA*0B*1C*2D*345671234ordeninicio
El número bajo cada celda es su lugar en el orden lógico (1 es el frente). La copia tal cual lo deja a medias: la celda 4, con borde grueso, es donde se corta.
Un deque de capacidad 5 está lleno, con inicio 3. Su array guarda R, S, T, P, Q en las posiciones 0 a 4, y el orden lógico es P, Q, R, S, T. Crece a capacidad 10 copiando en orden lógico. ¿Cómo queda el bloque nuevo?