Le strutture dati in Java: liste, code 1

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Le strutture dati in Java: liste, code 1"

Transcript

1 AA 03/04 Le sruure dai I programmi lavorano su informazioni Corso di laurea in Informaica Le informazioni sono spesso organizzae in avole Che non sono semplicemene una massa di dai numerici Ma è che coinvolgono relazioni sruurali ra i dai In genere c è mola più informazione sruurale ra i dai di quella che sia necessario rappresenare 1 2 Proprieà delle sruure dai Le sruure dai hanno proprieà saiche e dinamiche che possono essere molo diverse Le sruure dai devono essere rappresenae e implemenae nei linguaggi di programmazione Spazio di memoria per l archiviazione La rappresenazione influenza le funzionalià Creazione, manipolazione, ricerca, accesso 3 Rappresenazione della sruura dai Decidere caso per caso quana sruura rappresenare Occorre considerare non solo la sruura dai ma anche la classe d operazioni da effeuare sui dai La rappresenazione dipende ano dalle proprieà inrinseche delle sruura dai quano dalle funzionalià che si desiderano Forma e funzione 4 Tabelle d informazioni Nella forma più semplice una abella è una lisa lineare di elemeni La sua relazione sruurale più imporane consene di rispondere a domande come Chi è il della lisa? Chi è l ulimo? Chi precede e chi segue un dao elemeno? Quani elemeni ci sono nella lisa? In alri casi una abella può essere a 2 o più dimensioni Può avere una sruura gerarchica ad albero Può essere una sruura più complessa con ramificazioni a reicolo Lise lineari Un insieme di n 0 di nodi le cui proprieà sruurali coinvolgono essenzialmene solo le posizioni lineari (a 1-dimensione) relaive dei nodi Se n 0, x[1] è il nodo allora k con 1<k< n, il k-esimo nodo x[k] è preceduo dal nodo x[k-1] ed è seguio dal nodo x[k+1]; inolre x[n] è l ulimo nodo 5 6 lise, code 1

2 AA 03/04 Operazioni sulle lise Le operazioni che vogliamo eseguire su una lisa, includono (non esclusivamene): Accedere al k-esimo nodo Inserire un nuovo nodo in una posizione opporuna Eliminare il k-esimo nodo Unire 2 o più lise Fare una copia di una lisa Deerminare il numero di nodi in una lisa Ordinare i nodi di una lisa secondo un crierio Cercare le occorrenze di una nodo con un paricolare valore Paricolari lise Sono frequeni lise lineari in cui inserimeni, cancellazioni e accesso ai dai avvengono quasi sempre solo in prima o in ulima posizione Sack o pila. Inserimeni e cancellazioni (e spesso anche gli accessi) avvengono solo a un esremo della lisa Coda. Inserimeni avvengono a un esremo della lisa e le cancellazioni all alro Deque (coda a doppi esremi). Inserimeni e cancellazioni possono avvenire ai 2 esremi della lisa 7 8 Esempio Nomenclaura Spesso vengono usai alri nomi per indicare sack e lise in genere LIFO. Las In Firs Ou, per sack FIFO. Firs In Firs Ou, per le code In paricolare per gli sack si usano i ermini Top o cima per indicare il elemeno dello sack Un binario moro ad una sazione di esa èrappresenabile con uno sack. Il reno ad uscire è l ulimo che è enrao 9 Boom o fine per indicare l ulimo elemeno Pop per eliminare l elemeno al op Push per inserire un nuovo dao 10 Rappresenazione di una lisa Lise saiche vs dinamiche A seconda della classe di operazioni più frequeni è uile una paricolare rappresenazione Non esise una singola rappresenazione che rende le operazioni ue ugualmene efficieni L accesso random alla k-esimo nodo è diffcile se conemporaneamene inseriamo e cancelliamo nodi Disinguiamo rappresenazioni di lise in funzione delle principali operazioni da eseguire 11 Le lise saiche sono quelle che adoano una rappresenazione saica Viene allocaa un area di memoria di dimensione prefissaa quindi hanno una dimensione fissa Le lise dinamiche adoano una rappresenazione dinamica L area di memoria per archiviare i nodi viene riservaa dinamicamene in esecuzione quando serve Possono avere una dimensione non prefissaa 12 lise, code 2

3 AA 03/04 Implemenazione di pile public void push(objec o) Aggiunge l oggeo passao come paramero sullo sack. Se lo sack è pieno solleva una OuOfBoundsSackExcepion public Objec pop() Ripora il riferimeno dell oggeo che sa al op dello sack. Se lo sack è vuoo solleva una EmpySackExcepion public boolean empy() Ripora rue se lo sack è vuoo, false alrimeni Sack() Il cosruore che cosruisce uno sack vuoo 13 L eccezione per sack vuoo public class EmpySackExcepion exends RunTimeExcepion { Un eccezione definia come esensione di RunTimeExcepion quindi non conrollaa Viene sollevaa dal meodo pop() 14 L eccezione per sack pieno Implemenazione saica public class OuOfBoundsSackExcepion exends RunTimeExcepion { Un eccezione definia come esensione di RunTimeExcepion quindi non conrollaa Può essere sollevaa dal meodo push() Per un implemenazione saica di sack, possiamo adoare un array di oggei Lo sack viene rappresenao come un array di riferimeni a Objec L array sarà predimensionao in modo conveniene Occorre enere presene la dimensione massima dell array Porà sempre essere possibile andare in overflow Implemenazione saica Implemenazione dinamica Ogni posizione dell array rappresena un nodo dello sack La posizione 0 viene usaa per conenere l elemeno più in basso dello sack. Un indice indica la cima dello sack Sack.java e l eccezioni EmpySackExcepion.java OuOfBoundsSackExcepion.java Si usa una lisa lineare concaenaa Olre all informazioni del nodo è necessario archiviare l indirizzo del nodo successivo Ogni nodo coniene un campo per conenere il riferimeno all oggeo con il valore che ci ineressa archiviare lise, code 3

4 AA 03/04 Rappresenazione del nodo La classe che rappresena il nodo dello sack Class NodoSack { Objec dao; NodoSack pros; La definizione è ricorsiva, cioè il nodo è definio in ermini di sé sesso Rappresenazione dello sack Per definire lo sack è sufficiene dare il riferimeno alla cima dello sack La cima sarà null nel caso di sack vuoo public class Sack { privae NodoSack cima; alri meodi 19 Cosruore e meodi Il meodo push() public Sack() { cima = null; public boolean empy() { reurn cima == null; Il meodo ha come paramero il riferimeno all oggeo che deve inserire alla cima dello sack Dovrà creare un nuovo nodo Copiare il riferimeno passao come paramero nel campo dao del nuovo nodo Inserire il nuovo nodo alla cima della lisa Il meodo pop() Classi inerne Il meodo non ha parameri. Deve eliminare il nodo alla cima dello sack Dovrà memorizzare il riferimeno conenuo nella cima Eliminare la cima Riporare all ambiene il riferimeno memorizzao La classe NodoSack viene usaa solo dalla classe Sack e quindi viene dichiaraa saic e privae È una risorsa privaa della classe Sack che avrà accesso perciò ai suoi campi Se la lisa è vuoa deve sollevare un eccezione Sack.java EmpySackExcepion lise, code 4

5 AA 03/04 Le code Negli sack l elemeno che si preleva è l ulimo che si è inserio (LIFO) Nelle code gli elemeni si inseriscono ad un esremo e prelevano all alro (FIFO) Quindi si preleva nell ordine in cui si è inserio Ad esempio: una lisa d aesa Implemenazione dinamica Si può usare una lisa concaenaa Uile avere anche un riferimeno all ulimo nodo della lisa Implemenazione in Java Operazioni sulla coda Rappresenazione del singolo nodo class NodoCoda { Objec dao; NodoCoda pros; Rappresenazione della coda public class Coda { privae NodoCoda, ulimo; privae saic NodoCoda { alri meodi 27 Inserire nodi Avviene alla fine della lisa Eliminare nodi Avviene all inizio della lisa 28 Cosruore e meodi Inserire nodi Il cosruore cosruisce una coda vuoa public Coda() { = ulimo = null; Funzione per inserire un nodo Cosruire il nuovo nodo da inserire Collegare il nuovo nodo dopo l ulimo Aggiornare il riferimeno all ulimo nodo public void aggiugi (Objec o) { Creare il nuovo nodo con il dao riferio da o NodoCoda = new NodoCoda();.dao = o;.pros = null; ulimo lise, code 5

6 AA 03/04 inserire nodi Collegare dopo l ulimo nodo ulimo.pros = ; inserire nodi Aggiornare il riferimeno all ulimo nodo ulimo = ; ulimo ulimo inserire nodi Eliminare nodi Ma se la coda era vuoa allora if ( == null) = ulimo = ; ulimo ulimo Conrollare se la coda è vuoa e nel caso sollevare l eccezione CodaVuoaExcepion if ( == null) hrow new CodaVuoaExcepion(); Eliminare il riferimeno al nodo e riporare all ambiene il riferimeno conenuo nel campo dao Objec risulao =.dao; =.pros; eliminare nodi Se la lisa rimane vuoa dopo il prelievo, occorre ricordarsi di aggiornare ulimo if ( == null) ulimo = null; Coda.java con l eccezioni CodaVuoaExcepion.java e il driver ProvaCoda.java 35 lise, code 6

Informatica 3. Informatica 3. LEZIONE 9: Introduzione ai linguaggi funzionali. Lezione 9 - Modulo 1. Paradigma funzionale. Linguaggi imperativi

Informatica 3. Informatica 3. LEZIONE 9: Introduzione ai linguaggi funzionali. Lezione 9 - Modulo 1. Paradigma funzionale. Linguaggi imperativi Informaica 3 Informaica 3 LEZIONE 9: Inroduzione ai linguaggi funzionali Modulo 1: Inroduzione ai linguaggi funzionali Modulo 2: LISP Lezione 9 - Modulo 1 Inroduzione ai linguaggi funzionali Poliecnico

Dettagli

tipi di dato astratti

tipi 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

Dettagli

Esercizi per il corso di Algoritmi

Esercizi per il corso di Algoritmi Esercizi per il corso di Algorimi Esercizi su Union-Find. Esercizio: Scrivere pseudocodice per Make-Se, Union, e Find-Se usando la rappresenazione araverso lise linkae e la eurisica di unione pesaa. Si

Dettagli

Indici con gli alberi. Indici su memorie secondarie. Organizzazione logica di un disco

Indici con gli alberi. Indici su memorie secondarie. Organizzazione logica di un disco Indici con gli alberi Alberi perfeamene bilanciai per indici su memorie di massa: B-alberi Indici su memorie secondarie Spesso i dai da ordinare sono in quanià ale da richiedere disposiivi di memoria secondaria,

Dettagli

Algoritmi e Strutture Dati

Algoritmi 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]

Dettagli

Algoritmi e Strutture Dati

Algoritmi 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

Dettagli

Algoritmi e Strutture Dati

Algoritmi 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

Dettagli

Modelli per le macchine digitali

Modelli per le macchine digitali ei sequenziali Modelli per le macchine digiali Ingressi Uscie i( 0 ) i( n ) MACCHINA DIGITALE u( 0 ) u( n ) TEMPO In generale l uscia di una macchina in un cero isane emporale dipenderà dalla sequenza

Dettagli

Algoritmi e Strutture di Dati

Algoritmi 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

Dettagli

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 9 - Array 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 di Laurea

Dettagli

Liste. Costo operazioni Tutte le operazioni hanno costo O(1)

Liste. Costo operazioni Tutte le operazioni hanno costo O(1) Liste Liste (List, Linked List) Una sequenza di nodi, contenenti dati arbitrari e 1-2 puntatori all'elemento successivo e/o precedente Contiguità nella lista contiguità nella memoria Costo operazioni Tutte

Dettagli

Piano di Lavoro e di Attività Didattica. Classe 3 Sezione. Docente/i. Lorenzo Porcelli. Stefano Punta. Anno scolastico 2013/ 2014.

Piano di Lavoro e di Attività Didattica. Classe 3 Sezione. Docente/i. Lorenzo Porcelli. Stefano Punta. Anno scolastico 2013/ 2014. Piano di Lavoro e di Aivià Didaica Anno scolasico 2013/ 2014 A Classe 3 Sezione A Indirizzo Informaica Maeria informaica Nome e cognome Lorenzo Porcelli Nome e cognome Sefano Puna Docene/i Firma Firma

Dettagli

Lezione 1. Introduzione alle proprietà strutturali. F. Previdi - Controlli Automatici - Lez. 1 1

Lezione 1. Introduzione alle proprietà strutturali. F. Previdi - Controlli Automatici - Lez. 1 1 ezione. Inroduzione alle proprieà sruurali F. Previdi - Conrolli Auomaici - ez. F. Previdi - Conrolli Auomaici - ez. k x k y k u k x k x z G z z z z z z Qual è il «significao» di quesa cancellazione? Esempio:

Dettagli

PIL NOMINALE, PIL REALE E DEFLATORE

PIL NOMINALE, PIL REALE E DEFLATORE PIL NOMINALE, PIL REALE E DEFLATORE Il PIL nominale (o a prezzi correni) Come sappiamo il PIL è il valore di ui i beni e servizi finali prodoi in un cero periodo all inerno del paese. Se per calcolare

Dettagli

10/10/2016. Caratteristiche degli array. Il tipo RECORD. Il record. LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica

10/10/2016. Caratteristiche degli array. Il tipo RECORD. Il record. LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica Caratteristiche degli array Principali caratteristiche degli array: LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli

Dettagli

Esercizi Strutture dati di tipo astratto

Esercizi Strutture dati di tipo astratto Salvatore Cuomo Esercizi Strutture dati di tipo astratto Lezione n. 20 Parole chiave: Strutture dati, pile code, liste Corso di Laurea: Informatica Insegnamento: Programmazione II, modulo di Laboratorio

Dettagli

SOMMARIO STACK. STACK: specifica STACK

SOMMARIO STACK. STACK: specifica STACK SOMMARIO STACK Pila (stack): una struttura dati lineare a cui si può accedere soltanto mediante uno dei suoi capi per memorizzare e per estrarre dati. Specifica (descrizione). Implementazione (realizzazione).

Dettagli

Esercitazione 8. Corso di Tecniche di programmazione. Laurea in Ingegneria Informatica

Esercitazione 8. Corso di Tecniche di programmazione. Laurea in Ingegneria Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Esercitazione 8 Corso di Tecniche di programmazione Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti

Dettagli

Vediamo come si sviluppa la soluzione esplicita del problema. ( t)

Vediamo come si sviluppa la soluzione esplicita del problema. ( t) Analisi ransioria L'analisi dinamica ransioria (dea anche analisi emporale) è una ecnica che consene di deerminare la risposa dinamica di una sruura soggea ad una generica ecciazione emporale Gli effei

Dettagli

In questa lezione Strutture dati elementari: Pila Coda Loro uso nella costruzione di algoritmi.

In questa lezione Strutture dati elementari: Pila Coda Loro uso nella costruzione di algoritmi. In questa lezione Strutture dati elementari: Pila Coda Loro uso nella costruzione di algoritmi. 1 strutture dati (astratte) Una struttura dati astratti consiste di uno o più insiemi con delle operazioni

Dettagli

Memoria cache. Corso di Laurea in Ingegneria dell Informazione Università degli Studi di Firenze AA 2008/2009

Memoria cache. Corso di Laurea in Ingegneria dell Informazione Università degli Studi di Firenze AA 2008/2009 Memoria cache Coo di Laurea in Ingegneria dell Informazione Univeià degli Sudi di Firenze AA 2008/2009 D S I Inroduzione Il problema delle presazioni dei calcolaori copre divei aspei, ma con l aumenare

Dettagli

Laboratorio di Programmazione

Laboratorio di Programmazione Laboratorio di Programmazione (Laurea triennale in matematica) Lezione 33 Le liste in C struct nodo { int info; struct nodo *next; }; typedef struct nodo Nodo; typedef Nodo *PNodo; Pila (Stack ) La struttura

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 09 ADT: Lista, Pila, Coda A. Miola Marzo 2007 http://www.dia.uniroma3.it/~java/fondinf2/ ADT: Lista, Pila, Coda 1 Contenuti Tipo

Dettagli

Appunti di Analisi Numerica

Appunti di Analisi Numerica Appuni di Analisi Numerica Giuseppe Profii oobre 2006 Disribuzione dei numeri finii Come viso negli esercizi della lezione precedene, c è un numero finio di manisse associae a diversi esponeni: ciascun

Dettagli

Piano di Lavoro e di Attività Didattica. Classe 4 Sezione. Docente/i. Lorenzo Porcelli. Stefano Punta. Anno scolastico 2013/ 2014.

Piano di Lavoro e di Attività Didattica. Classe 4 Sezione. Docente/i. Lorenzo Porcelli. Stefano Punta. Anno scolastico 2013/ 2014. iis.vola.alessandria.i segreeria@vola.alessandria.i Piano di Lavoro e di Aivià Didaica Anno scolasico 2013/ 2014 A Classe 4 Sezione A Indirizzo Informaica Maeria informaica Nome e cognome Lorenzo Porcelli

Dettagli

Stabilità dell equilibrio (parte II)

Stabilità dell equilibrio (parte II) Appuni di Teoria dei sisemi - Capiolo 5 Sabilià dell equilibrio (pare II) Cenni sui crieri di insabilià... Cenni sulla sabilià dell equilibrio nei sisemi discrei... 3 Crieri di sabilià del movimeno...

Dettagli

COSTRUZIONE DELLE TAVOLE SELEZIONATE

COSTRUZIONE DELLE TAVOLE SELEZIONATE COSTRUZIONE DELLE TAVOLE SELEZIONATE 1. Inroduzione Ai fini della deerminazione delle presazioni di un conrao assicuraivo sulla via umana, srumeno indispensabile sono le avole demografiche di moralià,

Dettagli

Laboratorio di Programmazione

Laboratorio di Programmazione Laboratorio di Programmazione (Laurea triennale in matematica) Lezione 25 Le liste in C struct nodo { int info; struct nodo *next; }; typedef struct nodo Nodo; typedef Nodo *PNodo; Inserimento in ordine

Dettagli

Introduzione. Liste. Strutture ricorsive (2) Strutture ricorsive (1) DD p KP p

Introduzione. Liste. Strutture ricorsive (2) Strutture ricorsive (1) DD p KP p Introduzione Liste DD p. 449-474 KP p.397-424 Abbiamo fin ora studiato strutture dati con dimensione fissa: vettori e matrici strutture Introduciamo ora le strutture dati dinamiche (liste concatenate):

Dettagli

Introduzione ai Modelli di Durata: Stime Non-Parametriche. a.a. 2009/ Quarto Periodo Prof. Filippo DOMMA

Introduzione ai Modelli di Durata: Stime Non-Parametriche. a.a. 2009/ Quarto Periodo Prof. Filippo DOMMA Inroduzione ai Modelli di Duraa: ime Non-Parameriche cenni a.a. 2009/2010 - Quaro Periodo Prof. Filippo DOMMA Corso di Laurea pecialisica/magisrale in Economia Applicaa Facolà di Economia UniCal F. DOMMA

Dettagli

Liste concatenate. Collezione ordinata di nodi. Carlo Paolo Simona. Anna. ciascun nodo contiene due riferimenti:

Liste 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

Dettagli

Programmazione orientata agli oggetti. Ivan Lanese e Cosimo Laneve

Programmazione orientata agli oggetti. Ivan Lanese e Cosimo Laneve Programmazione orientata agli oggetti Ivan Lanese e Cosimo Laneve Argomenti Programmazione orientata agli oggetti Classi Oggetti Costruttori Programmazione orientata agli oggetti È un paradigma di programmazione

Dettagli

LINKEDLIST: implementazione iteratore. LINKEDLIST: iteratore INNERITERATOR INNERITERATOR

LINKEDLIST: 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

Dettagli

Aniello Murano Altri problemi NP- Completi

Aniello Murano Altri problemi NP- Completi Aniello Murano Alri problemi NP- Complei 6 Leione n Parole chiave: Np-complee Corso di Laurea: Informaica Codice: Email Docene: murano@ nainfni AA 2008-2009 Perché vedere alri problemi Np- complee? Per

Dettagli

Linked Lists. Liste linkate (1) liste linkate ( stack, queues ), trees. Liste linkate come strutture

Linked Lists. Liste linkate (1) liste linkate ( stack, queues ), trees. Liste linkate come strutture Linked Lists Liste linkate () La combinazione di class/struct e puntatori porta alla creazioni di interessanti Abstract Data Type liste linkate ( stack, queues ), trees Liste linkate come strutture struct

Dettagli

Laboratorio di Programmazione

Laboratorio di Programmazione Laboratorio di Programmazione (Laurea triennale in matematica) Lezione 25 ADT (Abstract Data Types) tipo di dato astratto Un ADT è un modello matematico con una collezione di operatori definiti su tale

Dettagli

La programmazione nel linguaggio C

La programmazione nel linguaggio C Cancellazione : versione ricorsiva Sfruttiamo la visione ricorsiva della struttura dati per realizzare la cancellazione in modo ricorsivo 1. la cancellazione della vuota non richiede alcuna azione 2. la

Dettagli

Questa soluzione va contemplata quando le lunghezze stimate dalle liste usate sono significativamente maggiori delle dimensioni di un elemento.

Questa soluzione va contemplata quando le lunghezze stimate dalle liste usate sono significativamente maggiori delle dimensioni di un elemento. Un ulteriore semplificazione si ottiene utilizzando un elemento sentinella (dummy) che non contiene informazione, ma serve a segnalare la fine (e l inizio) di una lista. Questa soluzione va contemplata

Dettagli

Equazioni Differenziali (5)

Equazioni Differenziali (5) Equazioni Differenziali (5) Daa un equazione differenziale lineare omogenea y n + a n 1 ()y n 1 + a 0 ()y = 0, (1) se i coefficieni a i non dipendono da, abbiamo viso che le soluzioni si possono deerminare

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 04 Introduzione ai Tipi astratti di dato A. Miola Febbraio 2007 http://www.dia.uniroma3.it/~java/fondinf2/ Introduzione ADT 1

Dettagli

Algoritmi e Programmazione Avanzata. Pile e code. Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino

Algoritmi e Programmazione Avanzata. Pile e code. Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino Sommario ADT Pile Code. A.A. 2001/2002 APA - 2 1 Sommario ADT Pile Code. A.A. 2001/2002 APA - 3 ADT Le regole che

Dettagli

Orario delle lezioni LABORATORIO TEORIA. mercoledì. martedì aula P/4. lab Turing. Strutture Dati

Orario delle lezioni LABORATORIO TEORIA. mercoledì. martedì aula P/4. lab Turing. Strutture Dati Orario delle lezioni LABORATORIO martedì 15.00-18.00 TEORIA mercoledì 16.00 18.00 lab Turing aula P/4 Libro di testo Data Structures & Algorithms in Java Michael T. Goodrich Roberto Tamassia John Wiley

Dettagli

Pile e code. Sommario. Algoritmi e Programmazione Avanzata. Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino

Pile e code. Sommario. Algoritmi e Programmazione Avanzata. Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino Pile e code Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino Sommario ADT Pile Code. A.A. 2002/2003 APA - Pile e code 2 Politecnico di Torino Pagina 1 di 23 Sommario

Dettagli

Linked Lists. Liste linkate (1) Progettazione: struct. Liste linkate (2)

Linked Lists. Liste linkate (1) Progettazione: struct. Liste linkate (2) Liste linkate () Linked Lists La combinazione di class/struct e puntatori porta alla creazioni di interessanti Abstract Data Type liste linkate ( stack, queues ), trees Liste linkate come strutture struct

Dettagli

Informatica 3. LEZIONE 13: Liste doppie, pile e code. Modulo 1: Free list Modulo 2: Lista doppia Modulo 3: Pila Modulo 4: Coda

Informatica 3. LEZIONE 13: Liste doppie, pile e code. Modulo 1: Free list Modulo 2: Lista doppia Modulo 3: Pila Modulo 4: Coda Informatica 3 LEZIONE 13: Liste doppie, pile e code Modulo 1: Free list Modulo 2: Lista doppia Modulo 3: Pila Modulo 4: Coda Informatica 3 Lezione 13 - Modulo 1 Free list Free list Le funzioni di sistema

Dettagli

Teoria dei Segnali. La Convoluzione (esercizi) parte prima

Teoria dei Segnali. La Convoluzione (esercizi) parte prima Teoria dei Segnali La Convoluzione (esercizi) pare prima 1 Si ricorda che la convoluzione ra due segnali x() e y(), reali o complessi, indicaa simbolicamene come: C xy () = x() * y() è daa indifferenemene

Dettagli

Laboratorio di Algoritmi e Strutture Dati. Code con Priorità

Laboratorio di Algoritmi e Strutture Dati. Code con Priorità Laboratorio di Algoritmi e Strutture Dati Code con Priorità Teresa M.A. Basile basile@di.uniba.it Dipartimento di Informatica Università degli Studi di Bari Aldo Moro Materiale di base gentilmente concesso

Dettagli

Informatica 3. Informatica 3. LEZIONE 13: Liste doppie, pile e code. Lezione 13 - Modulo 1. Free list (2) Free list. Free list

Informatica 3. Informatica 3. LEZIONE 13: Liste doppie, pile e code. Lezione 13 - Modulo 1. Free list (2) Free list. Free list LEZIONE 13: Liste doppie, pile e code Modulo 1: Free list Modulo 2: Lista doppia Modulo 3: Pila Modulo 4: Coda Lezione 13 - Modulo 1 Free list Politecnico di Milano - Prof. Sara Comai 1 Politecnico di

Dettagli

Lezione n.12. Gerarchia di memoria

Lezione n.12. Gerarchia di memoria Lezione n.2 Gerarchia di memoria Sommario: Conceo di gerarchia Principio di localià Definizione di hi raio e miss raio La gerarchia di memoria Il sisema di memoria è molo criico per le presazioni del calcolaore.

Dettagli

Alberi. Strutture dati: Alberi. Alberi: Alcuni concetti. Alberi: definizione ricorsiva. Alberi: Una prima realizzazione. Alberi: prima Realizzazione

Alberi. Strutture dati: Alberi. Alberi: Alcuni concetti. Alberi: definizione ricorsiva. Alberi: Una prima realizzazione. Alberi: prima Realizzazione Alberi Strutture dati: Alberi Strutture gerarchiche di dati Esempi Il file system di un sistema operativo L organigramma di un azienda Alberi generali, alberi n-ari, alberi binari, Ogni nodo ha un unico

Dettagli

Diodi a giunzione p/n.

Diodi a giunzione p/n. iodi a giunzione p/n. 1 iodi a giunzione p/n. anodo caodo Fig. 1 - Simbolo e versi posiivi convenzionali per i diodi. diodi sono disposiivi eleronici a 2 erminali caraerizzai dalla proprieà di poer condurre

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi 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

Dettagli

Programmazione orientata agli oggetti. Ivan Lanese

Programmazione orientata agli oggetti. Ivan Lanese Programmazione orientata agli oggetti Ivan Lanese Argomenti Programmazione orientata agli oggetti Classi Oggetti Costruttori Scrivere grosse applicazioni La gran parte delle applicazioni sono GROSSE Windows

Dettagli

18 - 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 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

Dettagli

Strutture dati dinamiche

Strutture dati dinamiche Strutture dati dinamiche - Liste concatenate - Pile -> LIFO (last in first out) - Code -> FIFO (first in first out) - Alberi binari: gestione dati in algoritmi complessi Liste Concatenate Formata da elementi

Dettagli

Ingressi Uscite I S I S T E M A U

Ingressi Uscite I S I S T E M A U PREMESSA n quesa lezione analizziamo l archieura dei sisemi di conrollo auomaico che permeono di enere soo conrollo le condizioni di un processo produivo al fine di oimizzare la qualià del prodoo. CONCETT

Dettagli

Università degli Studi di Firenze Corso di Laurea triennale in Fisica e Astrofisica

Università degli Studi di Firenze Corso di Laurea triennale in Fisica e Astrofisica Universià degli Sudi di Firenze Corso di Laurea riennale in Fisica e Asrofisica Analisi Maemaica I (A.A. 5/6) Proff. F. Bucci & E. Paolini Seconda prova inercorso ( Dicembre 5). Dimosrare che per ogni

Dettagli

Inserimento di un elemento in coda. quale va collegato quello nuovo. ultimo. *lista 8 3. aux. ultimo. *lista 8 3. aux

Inserimento di un elemento in coda. quale va collegato quello nuovo. ultimo. *lista 8 3. aux. ultimo. *lista 8 3. aux Inserimento di un elemento in coda Se la è vuota coincide con l inserimento in testa = è necessario il passaggio per indirizzo! Se la non è vuota, bisogna scandirla fino in fondo = dobbiamo usare un puntatore

Dettagli

Heap e code di priorità

Heap e code di priorità Heap e code di priorità Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010

Dettagli

ADT: Abstract Data Type. Quasi ADT. ADT per collezioni di dati (code generalizzate) 04 I tipi di dati astratti (I parte)

ADT: Abstract Data Type. Quasi ADT. ADT per collezioni di dati (code generalizzate) 04 I tipi di dati astratti (I parte) ADT: Abstract Data Type I tipi di dati astratti (I parte) Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino Scopo Livello di astrazione sui dati tale da mascherare completamente

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Strutture dati complesse Esempi di strutture dati complesse analizzate in questa lezione: Fondamenti di Informatica 21. Strutture di dati complesse in C++ Array di puntatori Pila (Stack) Coda (queue) Liste

Dettagli

Corso di Misure Geodeiche Esercizio posizionameno relaivo Versione:. Jun. 00 Creao da Marco Scurai. remessa. La presene eserciazione risolve in modo compleo e deagliao un problema di sima della posizione

Dettagli

Controlli automatici

Controlli automatici Conrolli auomaici (Prof. Bascea) Prima appello Anno accademico 29/21 15 Febbraio 21 Cognome:... Nome:... Maricola:... Firma:... Avverenze: Il presene fascicolo si compone di 8 pagine (compresa la coperina).

Dettagli

1 Strutture di dati dinamiche. 2 Vector come esempio di array dinamico

1 Strutture di dati dinamiche. 2 Vector come esempio di array dinamico 1 Strutture di dati dinamiche Le strutture dinamiche servono per memorizzare i dati dei quali non si sa a priori la loro dimensione. Ad esempio non sappiamo a priori quanti contatti avremo nella nostra

Dettagli

State Space Model. Corso di: Analisi delle Serie Storiche. Corso di Laurea Triennale in: Scienze Statistiche A.A. 2017/18

State Space Model. Corso di: Analisi delle Serie Storiche. Corso di Laurea Triennale in: Scienze Statistiche A.A. 2017/18 Sae Space Model Corso di: Analisi delle Serie Soriche Corso di Laurea Triennale in: Scienze Saisiche A.A. 07/8 Generalià Gli Sae Space Models (Modelli nello Spazio degli Sai) forniscono una meodologia

Dettagli

Pile e code. ADT e strutture dati per la rappresentazione di sequenze ad accesso LIFO e FIFO

Pile e code. ADT e strutture dati per la rappresentazione di sequenze ad accesso LIFO e FIFO Pile e code ADT e strutture dati per la rappresentazione di sequenze ad accesso LIFO e FIFO Le Pile Una pila è una struttura dati lineare, alla quale gli elementi possono essere aggiunti o sottratti da

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi 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

Dettagli

Strutture dati. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05

Strutture 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

Dettagli

Lezione 4 Material Requirement Planning

Lezione 4 Material Requirement Planning Lezione 4 Maerial Requiremen Planning Obieivo: noi gli alberi di prodoo per ciascun ipo; daa una sringa di loi di prodoi finii (fabbisogni dei clieni), ciascun loo da complearsi enro un dao inervallo (se.)

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java. Prof. Angela Bonifati

Algoritmi 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

tipi di dato astratti

tipi di dato astratti tipi di dato astratti liste pile code alberi grafi Alberto Ferrari Informatica ADT o un tipo di dato astratto o ADT (Abstract Data Type) è un tipo di dato le cui istanze possono essere manipolate con modalità

Dettagli

Tipi astratti pila e coda

Tipi astratti pila e coda Tipi astratti pila e coda Una pila è un tipo astratto che consente di rappresentare un insieme di elementi in cui ogni eliminazione ha per oggetto l elemento che è stato inserito per ultimo. Questa disciplina

Dettagli

CORSO DI PROGRAMMAZIONE

CORSO DI PROGRAMMAZIONE ISTITUTO TECNICO INDUSTRIALE G. M. ANGIOY SASSARI CORSO DI PROGRAMMAZIONE PILE E CODE DI DATI DISPENSA 11.02 11-02_Pile_Code_[ver_15] Questa dispensa è rilasciata sotto la licenza Creative Common CC BY-NC-SA.

Dettagli

Strutture dati e loro organizzazione. Gabriella Trucco

Strutture dati e loro organizzazione. Gabriella Trucco Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi

Dettagli

Lezione 15 programmazione in Java. Nicola Drago Dipartimento di Informatica Università di Verona

Lezione 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

Dettagli

del segnale elettrico trifase

del segnale elettrico trifase del segnale elerico rifase Gli analizzaori di poenza e di energia Qualisar+ consenono di visualizzare isananeamene le caraerisiche di una ree elerica rifase. emporale I Qualisar+ visualizzano simulaneamene

Dettagli

Geometria analitica del piano pag 7 Adolfo Scimone. Rette in posizioni particolari rispetto al sistema di riferimento

Geometria analitica del piano pag 7 Adolfo Scimone. Rette in posizioni particolari rispetto al sistema di riferimento Geomeria analiica del piano pag 7 Adolfo Scimone Ree in posizioni paricolari rispeo al sisema di riferimeno L'equazione affine di una rea a + + c = 0 può assumere forme paricolari in relazione alla posizione

Dettagli

La struttura a termine dei tassi d interesse. Benedetto Matarazzo

La struttura a termine dei tassi d interesse. Benedetto Matarazzo La sruura a ermine dei assi d ineresse Benedeo Maarazzo Corso di Maemaica Finanziaria Sruura per scadenza dei assi di ineresse Generalià sul mercao dei capiali La sruura per scadenza dei assi d ineresse

Dettagli

Tipi di dato e Strutture dati elementari

Tipi di dato e Strutture dati elementari Tipi di dato e Strutture dati elementari Ing. Paolo Craca Anno accademico 2007/2008 Tipi di dato e Strutture dati elementari 1 / 40 Cosa vedremo in questo seminario 1 Introduzione 2 Pile 3 Code 4 5 Bibliografia

Dettagli

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Metodi statici e array Tutor: Angelo Feraudo angelo.feraudo2@unibo.it a.a. 2017/2018 Fondamenti di Informatica T-1 Angelo Feraudo 1 / 14 METODI STATICI: Definizione Un metodo

Dettagli

SESSIONE SUPPLETIVA PROBLEMA 2

SESSIONE SUPPLETIVA PROBLEMA 2 www.maefilia.i SESSIONE SUPPLETIVA - 26 PROBLEMA 2 Fissao k R, la funzione g k :R R è così definia: g k = e kx2. Si indica con Γ k il suo grafico, in un riferimeno caresiano Oxy. ) Descrivi, a seconda

Dettagli

5 Soluzioni numeriche di equazioni differenziali

5 Soluzioni numeriche di equazioni differenziali 5 Soluzioni numeriche di equazioni differenziali 5. Meodo di Eulero per la soluzione approssimaa di equazioni differenziali del primo ordine in forma normale Dao un problema di Cauch { = f (,) ( ) =, il

Dettagli

La risposta di un sistema lineare viscoso a un grado di libertà sollecitato da carichi impulsivi. Prof. Adolfo Santini - Dinamica delle Strutture 1

La risposta di un sistema lineare viscoso a un grado di libertà sollecitato da carichi impulsivi. Prof. Adolfo Santini - Dinamica delle Strutture 1 La risposa di un sisema lineare viscoso a un grado di liberà solleciao da carichi impulsivi Prof. Adolfo Sanini - Dinamica delle Sruure 1 Inroduzione 1/2 Un carico p() si definisce impulsivo quando agisce

Dettagli

Circuiti dinamici. Circuiti del primo ordine. (versione del ) Circuiti del primo ordine

Circuiti dinamici. Circuiti del primo ordine.  (versione del ) Circuiti del primo ordine ircuii dinamici ircuii del primo ordine www.die.ing.unibo.i/pers/masri/didaica.hm (versione del 4-5- ircuii del primo ordine ircuii del primo ordine: circuii il cui sao è definio da una sola variabile

Dettagli

Calcolo numerico e ODE. Integrazione Numerica. Calcolo numerico Integrazione numerica Derivazione numerica. Equazioni differenziali.

Calcolo numerico e ODE. Integrazione Numerica. Calcolo numerico Integrazione numerica Derivazione numerica. Equazioni differenziali. Calcolo numerico e ODE Inegrazione Numerica Calcolo numerico Inegrazione numerica Derivazione numerica Equazioni differenziali Meodo dei reangoli Con alezza relaiva al puno medio Implemenazione: funcion

Dettagli

RICERCA OPERATIVA GRUPPO A prova scritta del 21 giugno 2010

RICERCA OPERATIVA GRUPPO A prova scritta del 21 giugno 2010 RICERCA OPERATIVA GRUPPO A prova scria del giugno 00. Scrivere il duale del problema P: max / x x x min y + y / x x = / y + y > / x + x / x > y = x, x > 0 y + / y > e dire se P ammee soluzione oima. In

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Strutture dati elementari Alberto Montresor Università di Trento This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy

Dettagli

Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java

Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java AA 2018/2019 Tutor Lorenzo Rosa lorenzo.rosa@unibo.it 2 Programma Introduzione al calcolatore e Java Linguaggio Java, basi e

Dettagli

P8 CIRCUITI SEQUENZIALI ELEMENTARI

P8 CIRCUITI SEQUENZIALI ELEMENTARI P8 CICUITI EUENZIALI ELEMENTAI P8. - Tracciare lo schema a blocchi di un sisema sequenziale secondo il modello di Moore. Nel modello di Moore di un sisema sequenziale, si suppone che lo sao successivo

Dettagli

LE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve

LE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve LE STRUTTURE DATI DINAMICHE: GLI ALBERI Cosimo Laneve 1 argomenti 1. definizione di alberi e nozioni relative 2. implementazione degli alberi, creazione, visita 3. algoritmo di visita iterativa e sua implementazione

Dettagli

SISTEMI LINEARI TEMPO INVARIANTI. Fondamenti Segnali e Trasmissione

SISTEMI LINEARI TEMPO INVARIANTI. Fondamenti Segnali e Trasmissione SISTEMI LINEARI TEMPO INVARIANTI Fondameni Segnali e Trasmissione Definizione di sisema Sisema: Da un puno di visa fisico e un disposiivo ce modifica un segnale (), deo ingresso, generando il segnale y(),

Dettagli

2. Grafi e proprietà topologiche

2. Grafi e proprietà topologiche . Grafi e proprieà opologiche Grafo. Marice di incidenza complea. Soografo. Ordine di un nodo. Percorso, maglia, veore opologico di maglia. Taglio, veore opologico di aglio. Orogonalià ra agli e maglie.

Dettagli

Corso di Componenti e Impianti Termotecnici TERMOSTRISCE

Corso di Componenti e Impianti Termotecnici TERMOSTRISCE TERMOSTRISCE 1 Termo srisce Le ermosrisce sono corpi scaldani che cedono calore per convezione naurale e per irraggiameno. Sono cosiuie essenzialmene da griglie di ubi sulle quali vengono fissae delle

Dettagli

Sommario. I Uso degli oggetti 39

Sommario. I Uso degli oggetti 39 Questo è l'indice del libro, in cui sono evidenziati i paragrafi corrispondenti agli argomenti trattati nel corso e che costituiranno il programma d'esame. Alcuni argomenti sono stati trattati nelle lezioni

Dettagli

Minimi Quadrati Ricorsivi

Minimi Quadrati Ricorsivi Minimi Quadrai Ricorsivi Minimi Quadrai Ricorsivi Fino ad ora abbiamo sudiao due diversi meodi per l idenificazione dei modelli: - Minimi quadrai, uilizzao per l idenificazione dei modelli ARX, in cui

Dettagli

Teoria dei Segnali. La Convoluzione (esercizi) parte seconda

Teoria dei Segnali. La Convoluzione (esercizi) parte seconda Teoria dei Segnali La Convoluzione (esercizi) pare seconda 1 Esercizio n.8 Calcolare la convoluzione ra i due segnali : e x() = rec ( ) rec ( 2 ) y() = rec 2 ( ) Conviene inizialmene disegnare i due segnali

Dettagli

MODELLISTICA E SIMULAZIONE cred.: 5 7,5 Recupero 1 prova: 25 luglio 2005

MODELLISTICA E SIMULAZIONE cred.: 5 7,5 Recupero 1 prova: 25 luglio 2005 Poliecnico di Milano I a Facolà di Ingegneria C.S. in Ing. per l Ambiene e il Terriorio MODELLISTICA E SIMULAZIONE cred.: 5 7,5 Recupero prova: 5 luglio 005 COGNOME NOME FIRMA: [7,5 credii] Voo: ATTENZIONE!

Dettagli

Laboratorio di Algoritmi

Laboratorio di Algoritmi Laboratorio di Algoritmi Corso di Laurea in Matematica Roberto Cordone DI - Università degli Studi di Milano Lezioni: Martedì 8.30-10.30 in aula 3 Mercoledì 10.30-13.30 in aula 2 Giovedì 15.30-18.30 in

Dettagli