Definizione informale
|
|
- Caterina Villani
- 4 anni fa
- Visualizzazioni
Transcript
1 Il TDA Dictionary
2 Definizione informale Il TDA Dictionary (dizionario) modella una collezione di voci su cui è possibile effettuare delle ricerche Una voce è una coppia (chiave, elemento) Le principali operazioni di un dizionario sono la ricerca, l inserimento e cancellazione Più voci possono avere la stessa chiave Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 2
3 Applicazioni Dizionari linguistici coppie (parola,definizione) Sistema DNS coppie (nome dominio, indirizzo IP) (caprera.dia.unisa.it, ) Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 3
4 I metodi del TDA Dictionary 1 size() isempty() findelement(key) Se esiste una voce con chiave key, ne restituisce l elemento, altrimenti restituisce l elemento speciale NO_SUCH_KEY findallelements(key) Restituisce un iteratore di tutte le voci che hanno chiave key Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 4
5 I metodi del TDA Dictionary 2 keys() Restituisce un iteratore su tutte le chiavi del dizionario elements() Restituisce un iteratore su tutte le voci del dizionario insertitem(key, element) Inserisce la voce (key, element) Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 5
6 I metodi del TDA Dictionary 3 removeelement(key) Se esiste una voce con chiave key, la rimuove restituendone l elemento, altrimenti restituisce l elemento speciale NO_SUCH_KEY remove(v) cancella la voce v dal dizionario entries() Restituisce un iteratore su tutte le voci nel dizionario Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 6
7 NO_SUCH_KEY In seguito vedremo come implementare l elemento speciale NO_SUCH_KEY È una sentinella Non viene lanciata un eccezione al suo posto perché, in un dizionario, è normale cercare una chiave che potrebbe non appartenere al dizionario stesso Inoltre gestire un eccezione è più lento che eseguire un test su di una sentinella Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 7
8 Note 1 Una voce del dizionario può essere rappresentata da una classe Entry È la classe Item che abbiamo utilizzato nell implementazione della coda a priorità Una qualsiasi implementazione del TDA Dictionary avrà una variabile di istanza _cmp simile ad un istanza di Comparator Viene usata per confrontare le chiavi delle voci Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 8
9 Note 2 I metodi presenti nell interfaccia Dictionary devono lanciare l eccezione InvalidKeyException se la chiave specificata non una chiave valida per il contenitore in esame private void checkkey(object key) { if (!_cmp.iscomparable(key)) throw new InvalidKeyException( " Chiave non confrontabile "); } Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 9
10 Algoritmo per findall(key) Input: Una chiave k Output: Un iteratore sulle voci con chiave uguale a k Creare una lista vuota L B = this.entries() while B.hasNext() do e = B.next() if e.key() == k then L.insertLast(e) return L.elements() // Possono essere sostituiti // da un accesso diretto // alle voci Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 10
11 Tipi di dizionari Esistono due tipi di dizionari Dizionari non ordinati Non c è una relazione d ordine tra le chiavi Dobbiamo solo verificare se due chiavi sono uguali Dizionari ordinati Esiste una relazione d ordine tra le chiavi Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 11
12 Dizionari non ordinati Non è definita alcuna relazione di ordinamento sulle chiavi Si può solo stabilire sono se due chiavi sono uguali o meno Al costruttore del dizionario viene passato un oggetto detto equality tester che supporta un metodo isequalto che verifica se due chiavi sono uguali o meno L equality tester è una versione ridotta del comparatore Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 12
13 EqualityTester public interface EqualityTester { boolean isequalto(object x, Object y); boolean iscomparable(object x); } Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 13
14 Il log file 1 Un log file è un dizionario non ordinato implementato tramite una sequenza Le voci sono memorizzate nella sequenza in un ordine arbitrario insertitem richiede tempo O(1) se implementata con InserFirst o InsertLast Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 14
15 Il log file 2 findelement e removeelement richiedono tempo O(n) Il caso pessimo si verifica quando la chiave non è presente nel dizionario Bisogna scandire l intera sequenza per trovare la voce con la chiave desiderata Conviene implementare un dizionario come log file solo se si tratta di un dizionario di piccola dimensione si effettuano molti inserimenti e poche operazioni di cancellazione e di ricerca Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 15
16 Implementazione di LogFile 1 public class LogFile implements Dictionary { private NodeSequence LF; private EqualityTester _cmp; public LogFile(EqualityTester eq) { LF = new NodeSequence(); _cmp = eq;} public Object findelement(object key) { // Cerca la voce con chiave key else return NO_SUCH_KEY; } Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 16
17 Implementazione di LogFile 2 public static final NoKey NO_SUCH_KEY = new NoKey(); static final class NoKey { private String _msg; public NoKey() { _msg = "Dictionary.NO_SUCH_KEY"; } } } Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 17
18 Utilizzo della classe LogFile public class Prova { private LogFile F = new LogFile(); } public void funzionequalsiasi(object key) { if (F.findElement(key) == LogFile.NO_SUCH_KEY) System.out.println("Chiave non trovata"); else System.out.println("Chiave trovata"); } Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 18
19 Esercizio Completare l implementazione della classe LogFile Scrivere la classe che rappresenta le voci nel LogFile Scrivere la classe che implementa EqualityTester per confrontare le chiavi associate alle voci presenti nel LogFile Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 19
20 Dizionari ordinati Sulle chiavi è definita una relazione di ordine totale Al costruttore del dizionario viene passato un comparatore come argomento Si possono definire metodi addizionali che fanno riferimento all ordinamento delle chiavi Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 20
21 Il TDA OrderedDictionary 1 In aggiunta ai metodi del TDA dizionario supporta closestkeybefore(k) Restituisce la chiave della voce con la chiave più grande tra quelle minori o uguali di k closestelementbefore(k) Restituisce l elemento della voce con la chiave più grande tra quelle minori o uguali di k Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 21
22 Il TDA OrderedDictionary 2 closestkeyafter(k) Restituisce la chiave della voce con la chiave più piccola tra quelle maggiori o uguali di k closestelementafter(k) Restituisce l elemento della chiave con la chiave più piccola tra quelle maggiori o uguali di k Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 22
23 Tabella di ricerca 1 Una tabella di ricerca è l implementazione di un dizionario ordinato Le voci vengono immagazzinate in una sequenza o in un vettore Le voci sono ordinate in base al valore delle chiavi Si usa un comparatore esterno per confrontare le chiavi Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 23
24 Tabella di ricerca 2 findelement richiede tempo O(log n) con la ricerca binaria insertitem e removeelement Con l implementazione tramite vettore richiedono tempo O(n) perché occorre spostare al più n voci Che cosa si può dire per l implementazione mediante sequenza? Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 24
25 Quando si usa la tabella di ricerca È indicato implementare un dizionario come una tabella di ricerca solo se si tratta di un dizionario piccolo si effettuano molte operazioni di ricerca e poche operazioni di inserimento e cancellazione Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 25
26 Esercizio Implementare il TDA OrderedDictionary tramite una tabella di ricerca Scrivere un programma per testare tutti i metodi dell implementazione Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 26
Definizione informale. Il TDA Dictionary (dizionario) modella una collezione di voci su cui è possibile effettuare delle ricerche
Il TDA Dictionary Definizione informale Il TDA Dictionary (dizionario) modella una collezione di voci su cui è possibile effettuare delle ricerche Una voce è una coppia (chiave, elemento) Le principali
DettagliIl TDA Dictionary. Definizione informale. I metodi del TDA Dictionary 1. Applicazioni. I metodi del TDA Dictionary 2. I metodi del TDA Dictionary 3
Il TDA Dictionary Definizione informale Il TDA Dictionary (dizionario) modella una collezione di voci su cui è possibile effettuare delle ricerche Una voce è una coppia (chiave, elemento) Le principali
DettagliIl TDA Map. Tabelle hash
Il TDA Map Tabelle hash Definizione informale Il TDA Map memorizza coppie formate da una chiave k e da un valore v La coppia è chiamata entry Ogni chiave deve essere unica Questa è la differenza principale
DettagliDefinizione informale. Il TDA Map memorizza coppie formate da una chiave k e da un valore v. La coppia è chiamata entry. Ogni chiave deve essere unica
Il TDA Map Tabelle hash Definizione informale Il TDA Map memorizza coppie formate da una chiave k e da un valore v La coppia è chiamata entry Ogni chiave deve essere unica Questa è la differenza principale
DettagliIl TDA Map. Definizione informale. I metodi del TDA Map 2. I metodi del TDA Map 1. Interfaccia Map 1 NO_SUCH_KEY. Tabelle hash
Il TDA Map Tabelle hash Definizione informale Il TDA Map memorizza coppie formate da una chiave k e da un valore v La coppia è chiamata entry Ogni chiave deve essere unica Questa è la differenza principale
DettagliEsercizio. Strutture Dati
Esercizio Si scriva un metodo public Position sibling(position v) che preso in input un nodo v restituisca il fratello di v. Il metodo dovrà lanciare una BoundaryViolationException nel caso in cui
DettagliList. Il TDA List. Interfaccia Position. Il TDA Position. Il TDA List 1. Ancora su Position
Il TDA List List Il TDA List è la versione orientata agli oggetti della struttura dati lista Una sequenza di nodi La versione astratta del nodo sarà il TDA Position Possiamo scrivere dei metodi che prendono
DettagliIl TDA List è la versione orientata agli oggetti della struttura dati lista. Una sequenza di nodi
List Il TDA List Il TDA List è la versione orientata agli oggetti della struttura dati lista Una sequenza di nodi La versione astratta del nodo sarà il TDA Position Possiamo scrivere dei metodi che prendono
DettagliADT Mappa. Le chiavi (il mezzo per accedere agli elementi) hanno lo scopo di rendere efficiente la ricerca. Strutture Dati
ADT Mappa Una mappa è un contenitore di elementi del tipo (k,v) dove k è la chiave e v è il suo corrispondente valore ogni elemento (k,v) viene detto entrata (entry) della mappa entrate multiple con la
DettagliADT Dizionario. Come nella Mappa: Diversamente dalla Mappa:
Come nella Mappa: un Dizionario è un contenitore di elementi del tipo (k,v) dove k è la chiave e v è il suo corrispondente valore. ogni elemento (k,v) viene detto entrata (entry) del Dizionario. chiavi
DettagliSET: specifica INTRODUZIONE. SET: esempio Si stampano i numeri casuali in ordine di generazione e il contenuto dell insieme.
INTRODUZIONE Il tipo di dati astratto insieme (set) definisce operazioni, quali inserimento e rimozione, su collezioni di oggetti che presentano molteplicità uno, cioè non sono ammessi duplicati. Una possibile
DettagliCode a priorità (comparatore) Set Mappe. TDA Priority Queue: def. informale
Oggi rivedremo Code a priorità (comparatore) Set Mappe TDA Priority Queue: def. informale Una coda a priorità (PQ) è un contenitore di elementi, ciascuno dei quali possiede una chiave (tipicamente numerica),
DettagliImplementazione con alberi binari di ricerca
public class LinkedBinaryTree implements BinaryTree { /** Espande una foglia in un nodo interno con due foglie come figli */ public void expandexternal(position v, E l, E r) throws InvalidPositionException
DettagliCoda a doppio ingresso (Deque)
Coda a doppio ingresso (Deque) Definizione informale Una coda a doppio ingresso o Deque è un TDA simile alla Coda che supporta inserimenti e cancellazioni ad entrambe le estremità Deque si pronuncia deck
DettagliCoda a doppio ingresso (Deque)
Coda a doppio ingresso (Deque) Definizione informale Una coda a doppio ingresso o Deque è un TDA simile alla Coda che supporta inserimenti e cancellazioni ad entrambe le estremità Deque si pronuncia deck
DettagliTDA Priority Queue. Situazioni concrete. Definizione. Alta priorità come trovarla? Relazione di ordine totale ( ) Le implementazioni che vedremo
TDA Priority Queue TDA Coda a priorità [GT3, cap.7,7.1-7.2] Situazioni concrete La vita è piena di decisioni ognuno ha le sue priorità Ad es., decidere se questo fine settimana studiare, dormire, uscire
DettagliStrutture dati. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05
Strutture dati Il che cosa e il come Il che cosa ed il come Struttura dati: descrive come sono organizzati i dati e come sono realizzate le operazioni su di essi (cioe come si accede ai dati) Specifica
DettagliAlbero in cui ogni nodo ha al più due figli. I figli di un nodo costituiscono una coppia ordinata
Il TDA BinaryTree Albero Binario A B C D E F G Albero in cui ogni nodo ha al più due figli. I figli di un nodo costituiscono una coppia ordinata I figli di un nodo vengono chiamati figlio sinistro e figlio
DettagliLINKEDLIST: implementazione iteratore. LINKEDLIST: iteratore INNERITERATOR INNERITERATOR
LINKEDLIST: iteratore Il metodo iterator() restituisce un oggetto iteratore sulla lista per scandire gli elementi in sequenza a partire dall inizio della lista. public Iterator iterator() { return new
Dettaglitipi di dato astratti
tipi di dato astratti A. FERRARI ADT Un tipo di dato astratto o ADT (Abstract Data Type) è un tipo di dato le cui istanze possono essere manipolate con modalità che dipendono esclusivamente dalla semantica
DettagliCode a priorità. Progettazione di Algoritmi Matricole congrue a 1. Docente: Annalisa De Bonis
Code a priorità Progettazione di Algoritmi 2018-19 Matricole congrue a 1 Docente: Annalisa De Bonis 26 Coda a priorità Una coda a priorità è un collezione di elementi a ciascuno dei quali è assegnata una
DettagliListe concatenate. Collezione ordinata di nodi. Carlo Paolo Simona. Anna. ciascun nodo contiene due riferimenti:
Liste concatenate Collezione ordinata di nodi head tail next next next next element element element element Ø Anna Carlo Paolo Simona ciascun nodo contiene due riferimenti: - un riferimento "element" a
DettagliAlgoritmi e Strutture Dati
Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Il concetto di dato Il concetto di tipo di dato Insertion Sort for j 2 to lenght[a]
Dettaglisemplici ogni elemento contiene un riferimento al successivo doppie ogni elemento contiene un riferimento al successivo e al precedente
Liste doppie Liste: semplici ogni elemento contiene un riferimento al successivo doppie ogni elemento contiene un riferimento al successivo e al precedente Rappresentazione grafica semplice: doppia: Gli
DettagliAlgoritmi e Strutture Dati
Maria Rita Di Berardini 2, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 2 Polo di Scienze Università di Camerino ad Ascoli Piceno Il concetto di dato Il concetto
DettagliProgrammazione 2. Liste Doppiamente Lincate. Prof. Sebastiano Battiato Prof.ssa Rosalba Giugno
Programmazione 2 Liste Doppiamente Lincate Prof. Sebastiano Battiato Prof.ssa Rosalba Giugno .. Liste doppiamente linkate Le liste linkate semplici consentono di scorrere gli elementi soltanto in una direzione,
DettagliCorso: Strutture Dati Docente: Annalisa De Bonis
Heap Corso: Strutture Dati Docente: Annalisa De Bonis Definizione l Un heap è un albero binario che contiene entrate della forma (key, value) nei suoi nodi e soddisfa le seguenti proprietà: l Heap-Order:
Dettagli4 Le liste collegate 4.0. Le liste collegate. 4 Le liste collegate Rappresentazione di liste 4.1 Rappresentazione di liste
4 Le liste collegate 4.0 Le liste collegate c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 2001/2002 4.0 0 4 Le liste collegate Rappresentazione di liste 4.1
DettagliInterfacce. Esempio: interfaccia I con una sola funzione g() public interface I {
Interfacce Una interfaccia è un astrazione per un insieme di funzioni pubbliche delle quali si definisce solo la segnatura, e non le istruzioni. Un interfaccia viene poi implementata da una o più classi
DettagliADT albero binario completo
ADT albero binario completo Un albero binario completo è un albero binario in cui ogni livello, fino al penultimo, è completamente riempito. L'ultimo livello è riempito da sinistra a destra a 1 nodo b
DettagliImplementazione ADT: Alberi
Implementazione ADT: Alberi Livelli di astrazione 2001/2002 1 Esercitazione 5 (E6): alberi (tree) albero struttura dati fondamentale, soprattutto per le operazioni di ricerca tipi di albero con radice
DettagliAlgoritmi e Strutture Dati
Strutture Elementari Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 29 ottobre 2008 Strutture Dati Astratte Il concetto di dato Il concetto
DettagliJAVA GENERICS. Angelo Di Iorio Università di Bologna
JAVA GENERICS Angelo Di Iorio Università di Bologna Tipi parametrici In diversi casi è utile definire classi che operano su tipi di dato diverso e implementano un comportamento comune e indipendente dal
DettagliLezione 15 programmazione in Java. Nicola Drago Dipartimento di Informatica Università di Verona
Lezione 15 programmazione in Java Nicola Drago nicola.drago@univr.it Dipartimento di Informatica Università di Verona Anteprima Approfondimenti della programmazione OO Il modificatore abstract Le classi
DettagliProva d Esame Compito A
Prova d Esame 19.04.2005 Compito A Domanda 1 A) Si richiede di analizzare le seguenti sezioni di codice. Il candidato indichi il risultato dell esecuzione del main. public class Father { private int counter;
DettagliTipi di dati astratti
Tipi di dati astratti ADT 1 Dati strutturati e algoritmi Una struttura di dati è un insieme di regole per organizzare e manipolare dei dati Un algoritmo è un procedimento composto in passi elementari in
DettagliHeap e Code di Priorità
Heap e Code di Priorità heap heap = catasta condizione di heap 1. albero binario perfettamente bilanciato 2. ogni nodo contiene una chiave maggiore o eguale di quelle presenti negli eventuali figli non
Dettaglicome segue: data una collezione C di elementi e una un elemento che verifica la proprietà P
Problemi di Ricerca Carla Binucci e Walter Didimo Il problema della Ricerca In generale, il Problema della Ricerca è definito come segue: data una collezione C di elementi e una proprietà P, determinare
DettagliAlberi. In informatica, un albero è un modello astratto di una struttura dati gerarchica
Il TDA Tree Alberi In informatica, un albero è un modello astratto di una struttura dati gerarchica Struttura dati non lineare Si pensi al file system di un sistema operativo Le relazioni in un albero
DettagliGerarchie e polimorfismo: liste
Gerarchie e polimorfismo: liste 1 Generalizzare le liste di interi List lista di oggetti non modificabile vorremo poi definire un sottotipo versione ordinata 2 List classe astratta usate i sottotipi per
DettagliIMPLEMENTAZIONE DI UN ALBERO AVL
IMPLEMENTAZIONE DI UN ALBERO AVL Dedichiamoci ora all implementazione dei dettagli ed all analisi dell ADT Dizionario costruito tramite un albero di ricerca AVL. Le operazioni di inserimento e rimozione
Dettaglichar *s; s = (char *) malloc(5*sizeof(char)); scanf( %s, s); Stringhe
char *s; s = (char *) malloc(5*sizeof(char)); scanf( %s, s); Stringhe Stringhe s char *s; s = (char *) malloc(5*sizeof(char)); scanf( %s, s); c i a o \0 Scrivere un programma che legga da input un array
Dettagli18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
18 - Vettori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it Corso di
DettagliAlberi Binari Alberi Binari
Alberi Binari Alberi Binari Un albero binario è una collezione di elementi organizzati in modo non sequenziale secondo un grafo aciclico caratterizzato da Radice Due sotto-alberi (il sotto-albero destro
Dettaglisemplici ogni elemento contiene un riferimento al successivo doppie ogni elemento contiene un riferimento al successivo e al precedente
1 of 23 22/11/2004 10.23 Liste: semplici ogni elemento contiene un riferimento al successivo doppie ogni elemento contiene un riferimento al successivo e al precedente Rappresentazione grafica Lista semplice:
DettagliEsercizio. Scrivere una classe ListMap<K, V> che implementa la mappa con una lista. Strutture Dati
Esercizio Scrivere una classe ListMap che implementa la mappa con una lista Esercizio Si scriva un metodo public static PositionList preorder(linkedbinarytree T) che preso in
DettagliEsempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione e rimane immutato.
DettagliHandle di Funzioni Università degli Studi di Milano
Handle di Funzioni Versioni recenti di Matlab definiscono in modo pieno il tipo funzione, permetto di assegnare a variabili valori di tipo funzione definire funzioni che ricevono parametri di tipo funzione
DettagliCollezioni, mappe e iteratori (a cura del Prof. Marco Patella)
, mappe e iteratori (a cura del Prof. Marco Patella) 1 Introduzione al Java Collections Framework Una collezione (o contenitore) consente di organizzare e gestire un gruppo di oggetti collezioni (vere
DettagliEsempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione
DettagliAlgoritmi e Strutture Dati
Heap Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Heap Heap binari: definizione Un heap binario è una struttura dati composta
DettagliFondamenti di Informatica T-1
Fondamenti di Informatica T-1 Collezioni: ArrayList Tutor: Angelo Feraudo angelo.feraudo2@unibo.it a.a. 2017/2018 Fondamenti di Informatica T-1 Angelo Feraudo 1 / 13 Interfaccia L interfaccia
DettagliImplementazione Java di un ADT
Implementazione Java di un ADT Primo passo definire l'interfaccia (API) dell' ADT (l'api descrive i nomi dei metodi che l'adt supporta e come essi sono dichiarati e usati) Secondo passo scrivere il codice
DettagliFondamenti di Informatica T-1
Fondamenti di Informatica T-1 Interfaccia Comparable e Collezioni Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 22 Interfaccia
DettagliLezione 10 Liste. Rossano Venturini. Pagina web del corso.
Lezione 10 Liste Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 1 Prova del 18/05/2009 Scrivere un programma che legga
DettagliLezione 8 Liste. Rossano Venturini. Pagina web del corso.
Lezione 8 Liste Rossano Venturini rossano.venturini@unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 1 Prova del 18/05/2009 Scrivere un programma
DettagliEsercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni
Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizio 1 Dire quale è la complessità temporale del seguente metodo, espressa con notazione asintotica O(.) (con la migliore
DettagliInformatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi
Informatica Generale Andrea Corradini 13 - Gli algoritmi e la risoluzione di problemi Sommario Passi per la risoluzione di problemi Problemi di ricerca e ordinamento Algoritmi iterativi: la ricerca lineare
DettagliLaboratorio di Algoritmi e Strutture Dati Anno Accademico 2005/06 Prof. Carlo Blundo. Raccolta di esercizi Versione del 20 dicembre 2005
Laboratorio di Algoritmi e Strutture Dati Anno Accademico 2005/06 Prof. Carlo Blundo Raccolta di esercizi Versione del 20 dicembre 2005 Alcuni di questi esercizi sono tratti dai libri di testo del corso
DettagliIl TDA Graph. Definizione. Note 1. Interfacce Vertex ed Edge
Il TDA Graph Definizione Un grafo è una coppia (V, E), dove V è un insieme di elementi, chiamati vertici (nodi) E è un insieme di coppie di nodi, chiamati archi Nella nostra implementazione, vertici ed
DettagliEsercitazione 5 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016
Esercitazione 5 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016 Tong Liu April 7, 2016 Liste trabocco (Separate Chaining) Esercizio 1 [Libro 7.5] Un dizionario è realizzato con liste di trabocco.
DettagliFondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento
Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento
DettagliSTRUTTURE DATI: OLTRE GLI ARRAY LISTE
STRUTTURE DATI: OLTRE GLI ARRAY le strutture dati progettate per ospitare una collezione di elementi, sono variazioni di array Ma l'array ha dimensione fissa anche in Java determinata a priori, in linguaggi
DettagliLe liste con array. Rimuovere la perla rossa costringe a spostare molte altre perle. Dove mettere la perla verde se si è esaurito il filo?
Liste Linkate Le liste con array Volendo usare una metafora, l implementazione delle liste tramite array è come infilare le perle (gli oggetti della lista) in un filo di lunghezza predefinita. E chiaro
DettagliE` un tipo astratto di dati che supporta tutti i metodi dell'adt Array list e dell'adt Lista di nodi più i seguenti:
E` un tipo astratto di dati che supporta tutti i metodi dell'adt Array list e dell'adt Lista di nodi più i seguenti: Position atindex(int r): restituisce la posizione dell'elemento di indice r; si verifica
DettagliLe liste. ADT e strutture dati per la rappresentazione di sequenze. Ugo de' Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 5
Le liste ADT e strutture dati per la rappresentazione di sequenze L ADT delle liste Una lista di valori di tipo A è una sequenza finita: a1, a2, L, an dove ai A, per ogni i valore lunghezza posizione L
DettagliAlgoritmi e Strutture Dati
Heap Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 6 novembre 2008 Heap binari: definizione Un heap binario è una albero binario quasi completo
Dettagli19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso
Dettaglilezione 5 Tipo di dato Lista Liste
lezione 5 Liste Tipo di dato Lista Una lista permette di memorizzare dati in maniera sequenziale e permette di inserire, accedere e cancellare dati in posizioni arbitrarie (non come nel caso di pile e
DettagliBinary Search Trees ( 10.1)
Binary Search Trees ( 10.1) Binary Search Trees AVL Trees Multy-ay Search Trees < > 1 4 = (,4) Trees External Searching Red-Black Trees 1 Dictionary ADT (.3) L ADT dizionario (Dictionary ADT) modella una
DettagliFondamenti di Informatica T-1
Fondamenti di Informatica T-1 Collezioni, Mappe e Iteratori Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2016/2017 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 14 Interfaccia
DettagliArgomenti della lezione. Introduzione agli Algoritmi e alle Strutture Dati. Lista Lineare. Lista Lineare come Tipo di Dato Astratto
Argomenti della lezione Introduzione agli Algoritmi e alle Strutture Dati Operazioni su Liste Dr. Emanuela Merelli Tipi di Dato Astratto Lista Lineare Pila Coda Concetto di Struttura dati dinamiche Lista
DettagliLaboratorio di Algoritmi e Strutture Dati Anno Accademico 2005/06 Prof. Carlo Blundo. Raccolta di esercizi Versione del 26 ottobre 2005
Laboratorio di Algoritmi e Strutture Dati Anno Accademico 2005/06 Prof. Carlo Blundo Raccolta di esercizi Versione del 26 ottobre 2005 Alcuni di questi esercizi sono tratti dai libri di testo del corso
DettagliArray e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa 17. A. Miola Gennaio 2012
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 17 A. Miola Gennaio 2012 1 Contenuti q Array paralleli q Array e oggetti q Ricerca sequenziale q Ricerca binaria q Fusione di sequenze
DettagliDati e Algoritmi 1: A. Pietracaprina. Mappa (I parte)
Dati e Algoritmi 1: A. Pietracaprina Mappa (I parte) 1 Mappa In generale, una Mappa è una collezione di entry che supporta, come metodi principali: ricerca, inserimento, rimozione. Gradi di libertà: Universo
DettagliEsercitazione su Albero Binario
Esercitazione su Albero Binario Costruzione iteratore nel preordine Costruzione albero simmetrico Attraversamento per livelli dell albero Costruttore di copia dell albero Esercitazione su Albero Binario
DettagliProva d Esame Compito A
DOMANDA1 Si analizzi il codice seguente e si scriva l output prodotto dai metodi main public class General { protected int value; public static boolean flag = false; public General() { value = 1; public
DettagliAlgoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
DettagliCapitolo 9. Tipi enumerativi, tipi generici e interfacce. c 2005 Pearson Education Italia Capitolo 9-1 / 73
Capitolo 9 Tipi enumerativi, tipi generici e interfacce c 2005 Pearson Education Italia Capitolo 9-1 / 73 Sommario: Tipi enumerativi, tipi generici e interfacce 1 Definizione di tipi enumerativi La classe
DettagliSTRUTTURE DINAMICHE. (slide: A. Baratè L.A. Ludovico) Programmazione per la Musica Adriano Baratè
STRUTTURE DINAMICHE (slide: A. Baratè L.A. Ludovico) Programmazione per la Musica Adriano Baratè DIFFERENZE RISPETTO AD ARRAY Finora le collezioni di dati sono state dichiarate come array (di stringhe,
Dettagliarray in Java come disporre di un numero arbitrariamente alto di variabili omogenee
array in Java come disporre di un numero arbitrariamente alto di variabili omogenee variabili con pedice? per memorizzare i coefficienti di polinomio di grado N occorrono N+1 variabili polinomio di grado
DettagliTIPO DI DATO ASTRATTO
TIPO DI DATO ASTRATTO Tipo di dato astratto Esempio: Vogliamo rappresentare un sistema di prenotazione di esami universitari. Dati immagazzinati: prenotazioni esami Operazioni supportate: prenota(esame,
Dettaglipublic static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;
Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i
DettagliAlgoritmi di ordinamento
Algoritmi di ordinamento! Selection Sort! Quick Sort! Lower bound alla complessità degli algoritmi di ordinamento Ordinamento 1 Selection Sort SelectionSort(dati[]) { for (i=0; idati.length-1; i++) { min
DettagliProgrammazione ad oggetti Modulo A Prova scritta 4 Settembre 2013
Programmazione ad oggetti Modulo A Prova scritta 4 Settembre 2013 Nome: Matricola: Istruzioni Scrivete il vostro nome sul primo foglio. Scrivete le soluzioni nello spazio riservato a ciascun esercizio.
DettagliDato un insieme S di n elementi totalmente ordinato, l'algoritmo di ordinamento detto HeapSort ha le seguenti caratteristiche:
Heapsort Dato un insieme S di n elementi totalmente ordinato, l'algoritmo di ordinamento detto HeapSort ha le seguenti caratteristiche: T(n) = O(n log(n)) Alg. Ordinamento ottimale Ordina in loco (niente
DettagliAlgoritmi e Strutture di Dati
Algoritmi e Strutture di Dati Capitolo 4 - Strutture di dati elementari This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy of this license, visit
DettagliAgent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Ingegneria del software A
Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Ingegneria del software A Collezioni di oggetti (in Java) Michele Tomaiuolo Framework Framework
DettagliLe liste. Prof. Francesco Accarino IIS Sesto San Giovanni Via Leopardi 132
Le liste Prof. Francesco Accarino IIS Sesto San Giovanni Via Leopardi 132 Le Liste Le liste non sequenziali (concatenate) sono costituite da elementi che vengono memorizzati in memoria centrale non uno
DettagliEsercitazione n 2. Obiettivi
Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe Uguaglianza tra oggetti Utilizzo di classi come componenti
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Tecniche di Programmazione: Collezioni Parte b versione 2.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi
DettagliParte di laboratorio
Ultima lezione Parte di laboratorio Alcuni hints per l implementazione di DecoratedGraph 1 Uso delle Mappe per decorare Sia p la posizione di un nodo. Posso considerare una mappa con chiavi (Object) COLORE,
DettagliProgrammazione in Java (I modulo)
Programmazione in Java (I modulo) Lezione 14: ALGORITMI di ordinamento di array RICERCA sequenziale e binaria Array bidimensionali (matrici) Passaggio di argomenti al main Operazioni su array Un array
DettagliSommario. Le strutture dati elementari per implementare sequenze: Vettori Liste
Sequenze Sommario Le strutture dati elementari per implementare sequenze: Vettori Liste Strutture dati elementari Le strutture dati vettore e lista sono fra le strutture dati più usate e semplici Il loro
DettagliAlgoritmi di ordinamento
Algoritmi di ordinamento Selection Sort Quick Sort Lower bound alla complessità degli algoritmi di ordinamento giu 03 ASD 1 Selection Sort SelectionSort(dati[]) { for (i=0; i
DettagliAlgoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal
Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi
DettagliLezione 8 Struct e qsort
Lezione 8 Struct e qsort Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 3 QuickSort strambo Modificare il Quicksort
DettagliProva d Esame Compito A
Prova d Esame 19.07.2005 Compito A Domanda 1 A) Si richiede di analizzare le seguenti sezioni di codice. Il candidato indichi il risultato dell esecuzione del main. public class Father { private int counter;
DettagliAlgoritmi di Ricerca. Esempi di programmi Java. Prof. Angela Bonifati
Passaggio dei parametri in Java Nel seguente esempio public class parametri2 public static void main(string args[]) int x = 1; int y; double d[] = new double[2]; d[0] = 25; y= metodo1(d, x); System.out.println("Il
Dettagli