28/10/2023 - Sgrubak ha scritto:
Mi manca comunque la logica per il Redo: se invoco Pop con l'Undo, dovrei avere una seconda Stack per i Redo?
Dipende da cosa si intende per Redo: se vuol dire ripetere nuovamente l'ultima operazione eseguita, va da sé qual è l'informazione da mantenere, ossia l'ultima operazione eseguita. Non ti serve tenere le precedenti, basta una.
Se invece intendiamo riprodurre tutto quello che è stato inserito storicamente nello Stack ed è stato tirato fuori, allora sì, occorre un altro Stack probabilmente.
Il suggerimento di usare gli stack era volto a semplificare: non che una lista sia sbagliata, ma fondamentalmente parliamo di strutture dove inseriamo elementi sequenziali e li rimuoviamo in modo altrettanto sequenziale, quindi la posizione effettiva (tranne l'ultimo) non ci interessa, ergo la lista è solo una complicazione (perché devi determinare sempre l'indice dell'ultimo elemento in base al numero di elementi).