

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 sui contenitori di dati basati su alberi (stack, queue, set) e sui dati strutturati come adt (unione, intersezione, sottrazione, map). Vengono presentati i metodi primitivi e le operazioni di base per ogni struttura dati, nonché le prestazioni associate. Il testo include anche una sezione su map e table, oltre a hash table e la loro implementazione.
Tipologia: Schemi e mappe concettuali
1 / 3
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!


Tags Appunti
Tutti extends Container
Stack Queue (anche coda circolare) Set/Insieme (anche con array ordinato) ADT per oggetti di tipo diverso senza un ordine interessante Metodi primitivi: void add(Object obj); boolean contains(Object obj); Object[] toArray(); Operazioni: Unione Intersezione Sottrazione Se array non ordinato: Ricerca lineare Aggiunta alla fine dell'array Metodi primitivi Operazioni Unione = 2 toArray e add si occupa di non ripetere elementi Intersezione = set1 toArray , lo scorro e se set2 contains , allora aggiungo Sottrazione = come sopra ma se !contains Se array ordinato SortedSet): Aggiungo: void add(Comparable obj); Comparable[] toSortedArray(); Ricerca binaria Aggiunta con insertion sort Operazioni
Unione = merge del mergeSort con passaggio in avanti di entrambi gli indici se elemento presente in entrambi i set/array Intersezione = scorro l'array principale, per ogni suo elemento scorro quello secondario e salto tutti gli elementi minori, se sono arrivato a fine array secondario break , se i due elementi sono uguali aggiungo e passo al prossimo elemento Sottrazione = uguale a sopra ma se i due elementi non sono uguali. Alla fine aggiungo tutti gli elementi dell'array principale non ancora controllati
Map (array ordinato e non), Table, Hash Table/Hash Table con bucket Contenitore di coppie chiave/valore con chiave Comparable e univoche usate come identificatori dell'oggetto Quindi i confronti e l'equals vanno fatti tra le chiavi delle coppie void insert(Comparable key, Object value); void remove(Comparable key); Object find(Comparable key);
Oggetto Pair : getKey getValue setKey setValue class MapItemNotFound
Se array non ordinato USO PER INSERIMENTI Operazioni Ricerca= lineare O(n) Inserimento= alla fine con prima ricerca Rimozione= con ricerca e poi spostamento dell'ultimo elemento
Se array ordinato USO PER RICERCA Ricerca= binaria Inserimento= con InsertionSort Rimozione= con ricerca e poi spostamento indietro di tutti gli elementi successivi
Table: Uso gli indici dell'array come chiavi Chiavi int