StudyFi Lab · Informatica

Strutture dati

Strutture dati è una simulazione interattiva gratuita di StudyFi Lab. Funziona direttamente nel browser, senza registrazione e senza installare nulla.

Pile, code, liste, alberi e grafi

Esperimenti

Pila (stack)

Una pila funziona come una pila di piatti: si aggiunge (push) e si toglie (pop) solo in cima, quindi l’ultimo elemento entrato è il primo a uscire (LIFO). Il puntatore top indica la cima; push e pop costano O(1). La usano l’Annulla di un editor, il tasto Indietro del browser e le chiamate di funzione (call stack).

Prova questo: Fai push di 1, 2, 3 e poi tre pop: i numeri escono in ordine inverso. Poi prova un nono push.

Coda

Una coda funziona come la fila alla cassa: i nuovi elementi entrano in fondo (enqueue, puntatore rear) ed escono davanti (dequeue, puntatore front), quindi il primo a entrare è il primo a uscire (FIFO). In un array si memorizza come buffer circolare: entrambi i puntatori tornano dall’ultima cella alla cella 0, così enqueue e dequeue costano O(1). Le code gestiscono stampanti, richieste ai server e il buffer dei video.

Prova questo: Attiva la vista circolare, inserisci sei numeri, togline quattro e inseriscine altri quattro: rear salta dalla cella 7 alla cella 0.

Lista concatenata

Ogni nodo contiene un valore e un collegamento next al nodo successivo; l’ultimo punta a null e la lista parte dal puntatore head. Inserire in testa costa O(1), ma per raggiungere la posizione i o un valore cercato bisogna scorrere nodo per nodo: O(n). A differenza di un array non si sposta nulla, si ricollegano solo i puntatori; così funzionano playlist, cronologie e liste di memoria libera.

Prova questo: Cerca l’ultimo valore e conta i passi del puntatore, poi inserisci in testa: è sempre un solo passo.

Albero binario di ricerca

In ogni nodo i valori minori stanno a sinistra e quelli maggiori a destra. Ricerca e inserimento seguono quindi un solo percorso dalla radice e costano O(h), dove h è l’altezza dell’albero: in un albero bilanciato h ≈ log₂ n. La cancellazione ha tre casi: una foglia sparisce, un nodo con un figlio viene sostituito dal figlio e un nodo con due figli prende il valore del suo successore in ordine. La visita in ordine elenca i valori ordinati; alberi simili stanno dietro agli indici dei database.

Prova questo: Cancella la radice: ha due figli, quindi vedrai la ricerca del successore. Poi prova «Inserisci valori ordinati»: l’albero degenera in una lista e l’altezza sale a n.

Grafo: BFS e DFS

La ricerca in ampiezza (BFS) prende i nodi da una coda: visita prima tutti i vicini del nodo di partenza, poi i loro vicini, livello per livello, e così trova il cammino più breve in numero di archi. La ricerca in profondità (DFS) prende i nodi da una pila e va il più lontano possibile prima di tornare indietro. Entrambe visitano ogni nodo e arco una volta: O(V + E). BFS serve ai navigatori e agli «amici degli amici», DFS risolve labirinti e trova cicli.

Prova questo: Procedi passo passo dal nodo 0 e confronta la coda con la pila. Poi cambia il nodo di partenza in 7: l’ordine di visita cambia del tutto.

Domande frequenti

Che cos’è Strutture dati?

Strutture dati è una simulazione interattiva gratuita di StudyFi Lab. Funziona direttamente nel browser, senza registrazione e senza installare nulla. Pile, code, liste, alberi e grafi

Strutture dati è gratuito?

Sì. Strutture dati è completamente gratuito. Funziona nel browser su computer, tablet e telefono, e non serve un account.

Cosa posso esplorare in Strutture dati?

Pila (stack), Coda, Lista concatenata, Albero binario di ricerca, Grafo: BFS e DFS.

Che cosa mostra l’esperimento «Pila (stack)»?

Una pila funziona come una pila di piatti: si aggiunge (push) e si toglie (pop) solo in cima, quindi l’ultimo elemento entrato è il primo a uscire (LIFO). Il puntatore top indica la cima; push e pop costano O(1). La usano l’Annulla di un editor, il tasto Indietro del browser e le chiamate di funzione (call stack).

Che cosa mostra l’esperimento «Coda»?

Una coda funziona come la fila alla cassa: i nuovi elementi entrano in fondo (enqueue, puntatore rear) ed escono davanti (dequeue, puntatore front), quindi il primo a entrare è il primo a uscire (FIFO). In un array si memorizza come buffer circolare: entrambi i puntatori tornano dall’ultima cella alla cella 0, così enqueue e dequeue costano O(1). Le code gestiscono stampanti, richieste ai server e il buffer dei video.

Studi per una verifica?

Carica i tuoi appunti e StudyFi li trasforma in flashcard, test e podcast.

Prova StudyFi gratis