Pile (Stack) e Code (Queue) sono tipi di dato astratto fondamentali che modellano processi del mondo reale e logiche di sistema essenziali. La pila, con la sua logica LIFO (Last In, First Out), è alla base della gestione delle chiamate a funzione e della funzione 'annulla' dei software. La coda, seguendo il principio FIFO (First In, First Out), governa la gestione delle stampe, dei pacchetti di rete e dei processi nei sistemi operativi.
Traguardi per lo Sviluppo delle CompetenzeIndicazioni Nazionali, Liceo Scientifico opzione Scienze Applicate, Informatica, Secondo biennio: Tipi di dato astratto (pile, code, liste)Indicazioni Nazionali, Liceo Scientifico opzione Scienze Applicate, Informatica, Secondo biennio: Scelta delle strutture dati adeguate per la risoluzione di problemi specifici
Gli studenti simulano il runtime di un programma. Usano una scatola (la pila) dove inseriscono foglietti con i nomi delle funzioni chiamate. Devono gestire l'ordine di esecuzione e il ritorno dei valori rispettando rigorosamente la logica LIFO.
Qual è la differenza fondamentale tra una pila e una coda?
Tre stazioni con problemi diversi: 1) Invertire una stringa usando una pila; 2) Gestire una coda di stampa; 3) Verificare la corretta chiusura delle parentesi in un'espressione. I gruppi devono risolvere i problemi usando solo le operazioni push/pop o enqueue/dequeue.
In piccoli gruppi, gli studenti devono progettare su carta un modo per implementare una coda usando un array fisso senza sprecare spazio, arrivando autonomamente al concetto di indici che 'ricominciano' dall'inizio (modulo).
Quali algoritmi reali utilizzano queste strutture?
Gli studenti spesso invertono LIFO e FIFO. L'uso di metafore fisiche (una pila di piatti vs una fila alla cassa) e la pratica manuale di inserimento e rimozione aiutano a fissare la differenza in modo indelebile.
Pensare che si possa accedere a un elemento nel mezzo di una pila.
Bisogna ribadire che per accedere all'elemento in fondo bisogna prima rimuovere tutti quelli sopra. Attività di problem solving limitate alle sole operazioni permesse rinforzano questo vincolo strutturale.