Sobes.tech
Junior

Quali sono le strutture dati esistenti?

sobes.tech AI

Risposta dell'AI

Array, liste, pile, code, alberi, grafi, tabelle hash.

Array: Collezione di elementi dello stesso tipo, memorizzati in celle di memoria contigue. Accesso tramite indice.

Lista: Collezione sequenziale di elementi. Possono essere semplici o doppiamente collegate. L'aggiunta/eliminazione nel mezzo è più efficiente rispetto a un array.

Pila: Struttura LIFO (Last-In, First-Out). Operazioni: push (aggiungi), pop (rimuovi dall'ultimo), peek (guarda l'elemento superiore).

Coda: Struttura FIFO (First-In, First-Out). Operazioni: enqueue (aggiungi alla fine), dequeue (rimuovi dall'inizio), peek (guarda il primo elemento).

Albero: Struttura dati gerarchica. Radice, nodi, discendenti. Esempio: albero binario di ricerca.

Grafico: Insieme di vertici (nodi), collegati da archi. Può essere orientato o non, pesato o non.

Tabella hash: Collezione di coppie chiave-valore. Usa funzione hash per accesso rapido (in media). Possono verificarsi collisioni.

Esempi di utilizzo in iOS:

  • Array: Array
  • Liste: nessuna classe incorporata, implementate con array o strutture personalizzate
  • Pile/Code: implementate con array o liste
  • Alberi: usati nei framework, ad esempio nell'UI (gerarchia delle visualizzazioni)
  • Grafici: per rappresentare connessioni, ad esempio reti
  • Tabelle hash: Dictionary, Set
// Esempio di array
let numbers = [1, 2, 3, 4, 5]
print(numbers[0]) // Accesso tramite indice

// Esempio di dizionario (tabella hash)
let grades = ["Alice": 95, "Bob": 88]
print(grades["Alice"] ?? 0) // Accesso tramite chiave