







Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Una panoramica completa delle strutture dati, esplorando concetti chiave come array, liste, pile, code e alberi. Le caratteristiche, i vantaggi e gli svantaggi di ciascuna struttura dati, fornendo esempi pratici e algoritmi di visita per alberi. Un'ottima risorsa per studenti universitari e chiunque desideri approfondire la comprensione delle strutture dati.
Tipologia: Appunti
1 / 13
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!








(perché il tipo di dati può essere implementato in modo diverso e a seconda di come lo implemento le operazioni che faccio possono essere implementate in modo diverso) sono libero di implementare il tipo e le operazioni come più mi conviene
collezione di elementi le cui dimensioni possono variare nel tempo. Lo posso implementare in modo diverso (array/lista) dipendenti da esigenze progettuali. Le operazioni tipiche su un insieme dinamico sono:
Il dizionario contiene coppie di elementi : L’ INFORMAZIONE (il nostro dato). La CHIAVE (di ricerca) che mi permette di rintracciare quell’elemento. I tempi di esecuzione delle operazioni sul dizionario dipendono da come gli elementi sono stati memorizzati e da come le operazioni sono state implementate. NB. Questa in figura in JAVA è chiamata INTERFACCIA (Astrazione comportamentale). Ci dice quali comportamenti deve avere la classe che sto implementando. In base a come organizzo i miei dati le operazioni vengono implementate in modo diverso e avranno dei costi diversi.
I nostri dati vengono memorizzati attraverso TECNICHE DI MEMORIZZAZIONE che si dividono in: 1.TECNICHE INDICIZZATE:
per memorizzare uno stesso tipo di dato (omogeneità). Gli indici delle celle di un array sono numeri consecutivi tra 1 ed N oppure tra 0 e N-1, dove N è la dimensione dell'array. L 'accesso ad ogni cella in lettura o scrittura avviene in tempo costante.
per accedere in tempo costante).
sovradimensionare un array non è conveniente. L’array inoltre memorizza solo dati omogenei. 2.TECNICHE COLLEGATE:
dei puntatori)
relazione
Permettono di rappresentare i collegamenti tra i record.
memoria
fa da accesso alla mia struttura dati per poi scorrere all’interno). È necessario memorizzare il punto di accesso alla struttura collegata: il record dal quale è possibile accedere a tutti gli altri record
Sono particolari STRUTTURE DATI con una ben definita strategia di inserimento e cancellazione degli elementi. In particolare le strategie usate sono:
elemento inserito) Una struttura dati che usa la strategia LIFO è detta PILA ACCESSO TOP INSERIMENTO PUSH CANCELLAZIONE POP
elemento inserito) Una struttura dati che usa la strategia FIFO è detta CODA ACCESSO FIRST INSERIMENTO ENQUEUE CANCELLAZIONE DEQUEUE Possono essere implementate sia usando rappresentazioni indicizzate (gestendo opportunamente gli indici) sia usando rappresentazioni collegate (gestendo opportunamente i puntatori)
L' ALBERO è un'organizzazione gerarchica dei dati
Sia T(N,A) un albero d-ario con n nodi numerate da 0 ad n-1, un vettore posizionale P è un array di dimensione n tale che P[v] contiene l’informazione relativa al nodo v. L’informazione dell’i-esimo figlio di v sarà in posizione P[d*v
RAPPRESENTAZIONI COLLEGATE PER ALBERI
DINAMICI , ovvero alberi la cui struttura cambia nel tempo
ma rendono più difficoltoso l’ACCESSO alle informazioni
memorizzi il dato e PUNTATORI utili a rappresentare le informazioni degli archi PUNTATORI AI FIGLI
LISTE DI PUNTATORI AI FIGLI
ALGORITMI DI VISITA DI ALBERI Sono algoritmi che consentono l’accesso sistematico ai nodi e agli archi di un albero e si distinguono in base al particolare ordine di visita dei nodi Si attraversano tutti gli archi a partire da quelli del nodo radice. Nel visitare i nodi dell’albero i nodi vengono visitati una e una sola volta.
ALGORITMO DI VISITA GENERICA (molto astratto)
NODO CHIUSO : sono stati visitati sia il nodo che tutti i suoi figli ***L’algoritmo di visita generica applicato alla radice di un albero con n nodi termina in O(n) passi. Lo spazio usato è O(n) Dimostrazione
ALGORITMO DI VISITA IN AMPIEZZA L’algoritmo di visita in ampiezza (BFS, breadth-first search):