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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

1 Orario delle lezioni LABORATORIO martedì TEORIA mercoledì lab Turing aula P/4

2 Libro di testo Data Structures & Algorithms in Java Michael T. Goodrich Roberto Tamassia John Wiley & Sons, Inc. (quarta edizione)

3 Sito del corso

4 Esercitazioni integrative Dal 23 marzo: Corso integrativo di esercitazione Prof. Rosalba Zizza Venerdì dalle 9.00 alle Laboratorio Reti

5 Strutture dati e tipi astratti di dati Algoritmo Struttura dati Informazione organizzata allo scopo di migliorare l'efficienza dell'algoritmo Tipo astratto di dati Definisce con rigore matematico una struttura dati Programma Struttura dati implementata

6 La struttura dati pila (stack) Inserimento, cancellazione e ricerca avvengono solo in una posizione inserimento e cancellazione avvengono secondo una strategia LIFO (last in first out): inserimento: un nuovo oggetto viene inserito in cima allo stack cancellazione: viene cancellato sempre l'oggetto in cima allo stack viene cancellato sempre l'oggetto che è stato inserito per ultimo

7 Il tipo astratto di dati (ADT) stack Tipo di dati e operazioni Dati: oggetti arbitrari (stringhe, interi, pezzi di codice,...) Operazioni: - push (element): inserisce un elemento - element pop(): restituisce l'elemento inserito per ultimo e lo rimuove - element top(): restituisce l'elemento in cima - integer size(): restituisce il numero di elementi presenti - boolean isempty(): è vero se e solo se non ci sono elementi

8 Un esempio Operazione Output

9 Un esempio Operazione push(5) Output 5

10 Un esempio Operazione push(5) push(8) Output 8 5

11 Un esempio Operazione push(5) push(8) pop() Output 8 5

12 Un esempio Operazione Output push(5) push(8) pop() 8 push(3) 3 5

13 Un esempio Operazione Output push(5) push(8) pop() 8 push(3) pop() 3 5

14 Un esempio Operazione Output push(5) push(8) pop() 8 push(3) pop() 3 pop() 5

15 Un esempio Operazione Output push(5) push(8) pop() 8 push(3) pop() 3 pop() 5 pop()?

16 Il tipo astratto di dati (ADT) stack Eccezioni Qual è il risultato di un'operazione di pop() (o di top()) su uno stack vuoto?

17 Il tipo astratto di dati (ADT) stack Eccezioni Qual è il risultato di un'operazione di pop() (o di top()) su uno stack vuoto? Una exception si verifica quando un'operazione non può essere eseguita. Ad esempio: - top() su uno stack vuoto - pop() su uno stack vuoto

18 Applicazioni Cronologia pagine visitate con un navigatore web Ogni volta che viene visitato un nuovo sito, l'indirizzo del sito corrente viene inserito nello stack con un'operazione di push.

19 Applicazioni Cronologia pagine visitate con un navigatore web Ogni volta che viene visitato un nuovo sito, l'indirizzo del sito corrente viene inserito nello stack con un'operazione di push.

20 Applicazioni Cronologia pagine visitate con un navigatore web Ogni volta che viene visitato un nuovo sito, l'indirizzo del sito corrente viene inserito nello stack con un'operazione di push. In cima allo stack ci sarà sempre l'indirizzo dell'ultima pagina visitata La proprietà LIFO dello stack ci garantisce che il tasto back ci farà visualizzare le pagine in ordine cronologico inverso (dalla più recente alla più vecchia)

21 Applicazioni Cronologia pagine visitate con un navigatore web La pressione del tasto "back" del navigatore genera un'operazione di pop dello stack. Ogni volta che viene visitato un nuovo sito, l'indirizzo del sito corrente viene inserito nello stack con un'operazione di push. In cima allo stack ci sarà sempre l'indirizzo dell'ultima pagina visitata La proprietà LIFO dello stack ci garantisce che il tasto back ci farà visualizzare le pagine in ordine cronologico inverso (dalla più recente alla più vecchia)

22 Applicazioni Cronologia pagine visitate con un navigatore web La pressione del tasto "back" del navigatore genera un'operazione di pop dello stack. Ogni volta che viene visitato un nuovo sito, l'indirizzo del sito corrente viene inserito nello stack con un'operazione di push.

23 Implementazione stack Una semplice soluzione con array Siccome quando si crea un array è necessario definire la sua taglia (size), l'implementazione dello stack mediante array comporta la specifica della massima taglia N dello stack. Lo stack viene implementato con un array di N elementi e una variabile t che indica l'indice dell'elemento in cima allo stack top t N-1

24 Implementazione stack con array Pseudocodice dei metodi top t N-1 Algorithm size(): return t + 1

25 Implementazione stack con array Pseudocodice dei metodi top t N-1 Algorithm isempty(): return (t < 0)

26 Implementazione stack con array Pseudocodice dei metodi top t N-1 Algorithm top(): if isempty() then throw a EmptyStackException return S[t]

27 Implementazione stack con array Pseudocodice dei metodi top t N-1 Algorithm push(element): if size() = N then throw a FullStackException t := t + 1 S[t] := element

28 Implementazione stack con array Vantaggi e svantaggi Vantaggi Implemetazione semplice ed efficiente Memoria usata: O(N) Complessità dei metodi (size, isempty, top, push, pop): O(1) Svantaggi Bisogna fissare a priori un limite superiore N alla massima taglia dello stack Un'applicazione potrebbe richiedere una capacità superiore ad N Un'applicazione potrebbe richiedere una capacità molto inferiore ad N Lo Stack lancia una StackFullException che arresta l'applicazione Spreco di memoria

29 La struttura dati coda (queue) Inserimento, cancellazione e ricerca avvengono solo in due posizioni inserimento e cancellazione avvengono secondo una strategia FIFO (first in first out): in inserimento: un nuovo oggetto viene inserito dietro la coda cancellazione: viene cancellato sempre l'oggetto davanti alla coda out viene cancellato sempre l'oggetto che è stato inserito per primo

30 Il tipo astratto di dati coda (queue) Tipo di dati e operazioni Dati: oggetti arbitrari Operazioni: - void enqueue (element): inserisce un nuovo elemento dietro (rear) la coda - element dequeue(): restituisce l'elemento in testa (front) alla coda (quello che è stato più a lungo in coda) e lo rimuove - element front(): restituisce l'elemento in testa alla coda - integer size(): restituisce il numero di elementi presenti in coda - boolean isempty(): è vero se e solo se non ci sono elementi in coda

31 Il tipo astratto di dati coda (queue) Un esempio Operazione enqueue(5) Output 5

32 Il tipo astratto di dati coda (queue) Un esempio Operazione Output enqueue(5) 8 5 enqueue(8)

33 Il tipo astratto di dati coda (queue) Un esempio 8 Operazione enqueue(5) enqueue(8) dequeue() Output 5

34 Il tipo astratto di dati coda (queue) Un esempio Operazione Output enqueue(5) 6 8 enqueue(8) dequeue() 5 enqueue(6)

35 Il tipo astratto di dati coda (queue) Un esempio 6 Operazione enqueue(5) enqueue(8) dequeue() enqueue(6) dequeue() Output 5 8

36 Il tipo astratto di dati coda (queue) Un esempio Operazione enqueue(5) enqueue(8) Output dequeue() enqueue(6) 5 dequeue() 8 dequeue() 6

37 Il tipo astratto di dati coda (queue) Un esempio Operazione enqueue(5) enqueue(8) Output dequeue() enqueue(6) 5 dequeue() 8 dequeue() 6 dequeue() error

38 Il tipo astratto di dati coda (queue) Le eccezioni Ricordare: una exception si verifica quando un'operazione non può essere eseguita. Ad esempio: - front() su una coda vuota - dequeue() su una coda vuota

39 Implementazione coda Una semplice soluzione con array front rear N-1 Come tenere traccia di front e rear della coda? - Q[0] contiene la testa della coda (front) - inseriamo gli oggetti da sinistra a destra - una variabile rear indica la prima cella libera

40 Implementazione coda Una semplice soluzione con array front rear N-1 Come tenere traccia di front e rear della coda? - Q[0] contiene la testa della coda (front) - inseriamo gli oggetti da sinistra a destra - una variabile rear indica la prima cella libera

41 Implementazione coda Una semplice soluzione con array front rear N-1 Come tenere traccia di front e rear della coda? - Q[0] contiene la testa della coda (front) - inseriamo gli oggetti da sinistra a destra - una variabile rear indica la prima cella libera

42 Implementazione coda Una semplice soluzione con array front rear N-1 Come tenere traccia di front e rear della coda? - Q[0] contiene la testa della coda (front) - inseriamo gli oggetti da sinistra a destra - una variabile rear indica la prima cella libera

43 Implementazione coda Una semplice soluzione con array front rear N-1 Come tenere traccia di front e rear della coda? - Q[0] contiene la testa della coda (front) - inseriamo gli oggetti da sinistra a destra - una variabile rear indica la prima cella libera

44 Implementazione coda Una semplice soluzione con array front rear N-1 Come tenere traccia di front e rear della coda? - Q[0] contiene la testa della coda (front) - inseriamo gli oggetti da sinistra a destra - una variabile rear indica la prima cella libera

45 Implementazione coda Una semplice soluzione con array front rear N-1 Come tenere traccia di front e rear della coda? - Q[0] contiene la testa della coda (front) - inseriamo gli oggetti da sinistra a destra - una variabile rear indica la prima cella libera Problema: come fare dequeue?

46 Implementazione coda Una semplice soluzione con array front rear N-1 Come tenere traccia di front e rear della coda? - Q[0] contiene la testa della coda (front) - inseriamo gli oggetti da sinistra a destra - una variabile rear indica la prima cella libera Questa soluzione non è efficiente perché in caso di dequeue si dovranno spostare tutti i rimanenti oggetti di una posizione a sinistra: ciò richiede complessità O(n), dove n è il numero di oggetti in coda

47 Implementazione coda Un'altra soluzione con array (più efficiente) Definiamo due variabili f e r : All'inizio f = r = 0 (la coda è vuota) f = r = N-1 - quando aggiungiamo un elemento, basterà incrementare r fino alla prossima cella disponibile - quando cancelliamo un elemento, basterà spostare f alla cella successiva

48 Implementazione coda Un'altra soluzione con array (più efficiente) f r N-1 - quando aggiungiamo un elemento, basterà incrementare r fino alla prossima cella disponibile - quando cancelliamo un elemento, basterà spostare f alla cella successiva

49 Implementazione coda Un'altra soluzione con array (più efficiente) f r N-1 - quando aggiungiamo un elemento, basterà incrementare r fino alla prossima cella disponibile - quando cancelliamo un elemento, basterà spostare f alla cella successiva

50 Implementazione coda Un'altra soluzione con array (più efficiente) f r N-1 - quando aggiungiamo un elemento, basterà incrementare r fino alla prossima cella disponibile - quando cancelliamo un elemento, basterà spostare f alla cella successiva

51 Implementazione coda Un'altra soluzione con array (più efficiente) f r N-1 - quando aggiungiamo un elemento, basterà incrementare r fino alla prossima cella disponibile - quando cancelliamo un elemento, basterà spostare f alla cella successiva

52 Implementazione coda Un'altra soluzione con array (più efficiente) f r N-1 - quando aggiungiamo un elemento, basterà incrementare r fino alla prossima cella disponibile - quando cancelliamo un elemento, basterà spostare f alla cella successiva

53 Implementazione coda Un'altra soluzione con array (più efficiente) Ora f = r (la coda è vuota) f = r N-1 - quando aggiungiamo un elemento, basterà incrementare r fino alla prossima cella disponibile - quando cancelliamo un elemento, basterà spostare f alla cella successiva

54 Implementazione coda Un'altra soluzione con array (più efficiente) In generale: N-1 se la coda è vuota: f = r se la coda non è vuota: - f è l'indice della cella che contiene il primo elemento della coda (front) - r è l'indice della cella dove verrà inserito il prossimo elemento della coda

55 Implementazione coda Un'altra soluzione con array (più efficiente) Inconveniente n. 1 Situazione dopo una serie di N enqueue e dequeue consecutive: f = r = N N-1 La coda è vuota ma lo spazio a disposizione sull'array è finito Se ora volessimo inserire un elemento nella coda, dovremmo incrementare r, ma ciò non è permesso perché r ha già raggiunto il limite massimo consentito dalla taglia dell'array

56 Implementazione coda Un'altra soluzione con array (più efficiente) Per evitare il problema f ed r possono essere incrementati "circolarmente" f = r = N N-1 Incremento di f: f = ( f + 1) mod N Incremento di r: r = ( r + 1) mod N quando f = r la coda è vuota

57 Implementazione coda Un'altra soluzione con array (più efficiente) Inconveniente n. 2 Situazione dopo una successione di N enqueue consecutive: f = r N-1 Questa condizione corrisponde alla situazione di coda vuota! Si può ovviare ponendo a N - 1 il limite massimo di oggetti che la coda può contenere

58 Implementazione coda con array Pseudocodice dei metodi f r N-1 r f N-1 Algorithm size(): return (N + r - f) mod N

59 Implementazione coda con array Pseudocodice dei metodi f r N-1 Algorithm isempty(): return (f = r)

60 Implementazione coda con array Pseudocodice dei metodi f r N-1 Algorithm front(): if isempty() then throw a EmptyQueueException return Q[f]

61 Implementazione coda con array Pseudocodice dei metodi f r N-1 Algorithm dequeue(): if isempty() then throw a EmptyQueueException temp := Q[f] Q[f] := null f := (f+1) mod N return temp

62 Implementazione coda con array Pseudocodice dei metodi f r N-1 Algorithm enqueue(element) if size() = N - 1 then throw a FullQueueException Q[r ] := element r := (r + 1) mod N

63 Implementazione coda con array Vantaggi e svantaggi Vantaggi Implemetazione semplice ed efficiente Memoria usata: O(N) Complessità dei metodi (size, isempty, front, enqueue, dequeue): O(1) Svantaggi Bisogna fissare a priori un limite superiore N alla massima taglia della coda

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

Tipi di dati astratti

Tipi 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

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

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

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

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

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

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

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

Implementazione Java di un ADT

Implementazione 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

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

Algoritmi e Strutture di Dati

Algoritmi e Strutture di Dati Algoritmi e Strutture di Dati Tipi astratti di dato (pile e code realizzate tramite array) m.patrignani Nota di copyright queste slides sono protette dalle leggi sul copyright il titolo ed il copyright

Dettagli

Esercitazione: Implementazione in linguaggio C dell ADT. Stack con l utilizzo. di linked list

Esercitazione: Implementazione in linguaggio C dell ADT. Stack con l utilizzo. di linked list Esercitazione: Implementazione in linguaggio C dell ADT Stack con l utilizzo di linked list Laboratorio di Programmazione Introduzione un ADT (Abstract Data Type) è un modello (formale) che generalizza

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

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

Laboratorio di Programmazione Lezione 3. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 3. Cristian Del Fabbro Laboratorio di Programmazione Lezione 3 Cristian Del Fabbro Prossima lezione GIOVEDÌ 12 NOVEMBRE ORE 14:00 Array a.k.a. vettore Un array è una collezione ordinata di dati omogenei (cioé sono tutti dello

Dettagli

La struttura dati CODA

La struttura dati CODA Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 La struttura dati CODA Pietro Di Lena - pietro.dilena@unibo.it Introduzione Una coda (o queue) è una struttura dati astratta

Dettagli

algoritmi e strutture di dati

algoritmi e strutture di dati algoritmi e strutture di dati tipi astratti di dato (pile, code, liste implementate tramite array) m.patrignani nota di copyright queste slides sono protette dalle leggi sul copyright il titolo ed il copyright

Dettagli

Il vettore e la lista concatenate (o catena) sono due esempi di strutture interne.

Il vettore e la lista concatenate (o catena) sono due esempi di strutture interne. Strutture dati PILA e CODA Le strutture dati si dividono in interne e astratte. Quelle astratte sono rappresentazioni dei dati di un problema che rispecchiano le proprietà dei dati e le relazioni usate

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

Algoritmi e strutture dati

Algoritmi e strutture dati Algoritmi e strutture dati Argomenti Strutture dati elementari e loro implementazioni in Java: Vettori Liste Stack (Pile) Queue (Code) Esempi di applicazione Tipo di dato astratto Tipo di dato astratto

Dettagli

Esercitazioni di Algoritmi e Strutture Dati

Esercitazioni di Algoritmi e Strutture Dati Esercitazioni di Algoritmi e Strutture Dati II esercitazione, 14/03/2016 Tong Liu 1 SOLUZIONE DEL COMPITO PRECEDENTE Definire e inizializzare un array di N numeri interi *distinti* (la scelta di N e degli

Dettagli

Argomenti della lezione. Tipo di dato astratto. Array. Tipo di dato Lista. Liste Implementazione di liste in Java Stack Code

Argomenti della lezione. Tipo di dato astratto. Array. Tipo di dato Lista. Liste Implementazione di liste in Java Stack Code Argomenti della lezione! Tipi di dato astratti! Strutture dati elementari Liste Implementazione di liste in Java Stack Code! Esempi di applicazione Tipo di dato astratto! Tipo di dato astratto o ADT (Abstract

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

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

Pile e Code. Definiamo una collezione come un gruppo di oggetti, detti gli elementi della collezione.

Pile e Code. Definiamo una collezione come un gruppo di oggetti, detti gli elementi della collezione. Pile e Code lezione 4 Collezioni Defiamo una collezione come un gruppo di oggetti, detti gli elementi della collezione. Durante il corso defiremo delle tecniche di base per gestire modo efficiente collezioni

Dettagli

Struttura dati astratta Coda

Struttura dati astratta Coda CODE Struttura dati astratta Coda La coda o queue è una struttura dati astratta in cui l'inserimento e l estrazione sono consentite solo in specifiche posizioni; in particolare, l'inserimento è consentito

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

Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati

Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli Studi di Bologna Anno Accademico 2008/2009 Sommario

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

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

Fondamenti di Informatica II

Fondamenti di Informatica II Università degli studi di Messina Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica e delle Telecomunicazioni Fondamenti di Informatica II Tipi di dati astratti(adt)- seconda parte Coda Struttura

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

Liste con sentinella. intlist *createlist(void){ intlist *q = malloc(sizeof(intlist)); if(!q) { exit(-1); } q->next = q->prev = q; return q; }

Liste con sentinella. intlist *createlist(void){ intlist *q = malloc(sizeof(intlist)); if(!q) { exit(-1); } q->next = q->prev = q; return q; } Liste con sentinella Un ulteriore semplificazione delle operazioni sulle liste si ottiene utilizzando un elemento sentinella (dummy) che non contiene informazione, ma serve a segnalare la fine e l inizio

Dettagli

Corso: Fondamenti di Informatica (Canale 5) a.a Corsi di laurea: Ing. Settore Informazione

Corso: Fondamenti di Informatica (Canale 5) a.a Corsi di laurea: Ing. Settore Informazione Domanda n. 1 Corso: Fondamenti di Informatica (Canale 5) a.a. 2016-17 Corsi di laurea: Ing. Settore Informazione Questionario a Risposte Multiple per auto-valutazione del Lab10 Argomento: Algoritmi e complessita'

Dettagli

TIPO DI DATO ASTRATTO

TIPO 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,

Dettagli

Programmazione in Java Parte II

Programmazione in Java Parte II Programmazione in Java Parte II Lezione 7 Dott. Marco Faella Il Java Collection Framework Java Collection Framework (JCF) è una parte della libreria standard dedicata alle collezioni, intese come classi

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

Corso di Algoritmi e Strutture Dati con Laboratorio. Tipi di dato pila e coda

Corso di Algoritmi e Strutture Dati con Laboratorio. Tipi di dato pila e coda Corso di Algoritmi e Strutture Dati con Laboratorio Tipi di dato pila e coda Uno stack è una collezione di elementi ( tipo di dato astratto) che supporta le seguenti operazioni tipiche: push, pop, peek

Dettagli

Altro di ADT. Dominio. Funzioni. Dominio. Funzioni. Costanti - Collezioni

Altro di ADT. Dominio. Funzioni. Dominio. Funzioni. Costanti - Collezioni di astratto Abstract Data Type Paolo Bison Fondamenti di Informatica 1 A.A. 2004/05 Università di Padova definizione di un indipendente dalla sua rappresentazione interna e dalla effettiva implementazione

Dettagli

Contenitori: Pile e Code

Contenitori: Pile e Code Contenitori: Pile e Code D O T T. I N G. L E O N A R D O R I G U T I N I D I PA R T I M E N T O I N G E G N E R I A D E L L I N F O R M A Z I O N E U N I V E R S I T À D I S I E N A V I A R O M A 5 6 5

Dettagli

ADT STACK (PILA) ADT STACK (PILA)

ADT STACK (PILA) ADT STACK (PILA) ADT STACK (PILA) Collezione di elementi dello stesso tipo (multi-insieme) gestito con politica LIFO (Last-In -- First-Out): il primo elemento entrato è l ultimo a uscire Svariate applicazioni del concetto

Dettagli

In questa lezione Strutture dati elementari: Pila Coda

In questa lezione Strutture dati elementari: Pila Coda In questa lezione Strutture dati elementari: Pila Coda 1 strutture dati (astratte) Una struttura dati astratti consiste di uno o più insiemi con delle operazioni che li modificano (insiemi dinamici). Le

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

Tipo di Dato. Abstract Data Types. Tipi di Dato Astratti /2. Tipi di Dato Astratti /1

Tipo di Dato. Abstract Data Types. Tipi di Dato Astratti /2. Tipi di Dato Astratti /1 Università Roma La Sapienza Corsi di Laurea Informatica/Tecnologie Informatiche Abstract Data Types Prof. Stefano Guerrini guerrini@di.uniroma1.it Programmazione II (can. P-Z) A.A. 2005-06 Tipo di Dato

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

Strutture dati elementari. Vittorio Maniezzo - Università di Bologna

Strutture dati elementari. Vittorio Maniezzo - Università di Bologna Strutture dati elementari 1 Vittorio Maniezzo - Università di Bologna Pile (Stacks) Dati: un insieme S di elementi. Operazioni: PUSH, POP PUSH: inserisce un elemento in S POP: restituisce l ultimo elemento

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio 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

Dettagli

ADT STACK (PILA) Svariate applicazioni del concetto di stack:

ADT STACK (PILA) Svariate applicazioni del concetto di stack: ADT STACK (PILA) Collezione di elementi dello stesso tipo (multi-insieme) gestito con politica LIFO (Last-In -- First-Out): il primo elemento entrato è l ultimo a uscire Svariate applicazioni del concetto

Dettagli

ADT Dizionario. Come nella Mappa: Diversamente dalla Mappa:

ADT 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

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

Alberi Binari Alberi Binari

Alberi 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

Dettagli

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Strutture Dati Laboratorio di Algoritmi e Strutture Dati Prof. Aniello Murano Stack e Code Corso di Laurea Codice insegnamento Email docente Anno accademico Informatica 13917 murano@na.infn.it 2007/2008 Lezione numero:

Dettagli

ADT Mappa. Le chiavi (il mezzo per accedere agli elementi) hanno lo scopo di rendere efficiente la ricerca. Strutture Dati

ADT 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

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

Programmazione II canale AD -- Esonero del 21/04/2006

Programmazione II canale AD -- Esonero del 21/04/2006 Esercizio 1 (Sbarramento ) Si scriva una funzione ricorsiva che riceve in input una lista concatenata di interi L e restituisce una nuova lista concatenata di interi L1 in cui l elemento j-simo ( j 1)

Dettagli

heap heap heap? max- e min-heap concetti ed applicazioni heap = catasta condizione di heap non è una struttura ordinata

heap heap heap? max- e min-heap concetti ed applicazioni heap = catasta condizione di heap non è una struttura ordinata heap heap concetti ed applicazioni heap = catasta condizione di heap 1. albero binario perfettamente bilanciato 2. tutte le foglie sono a sinistra ma non è un BST!! 3. ogni nodo contiene una chiave maggiore

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

Strutture dati elementari

Strutture dati elementari Strutture dati elementari 1 Vittorio Maniezzo - Università di Bologna Pile (Stacks) Dati: un insieme S di elementi. Operazioni: PUSH, POP PUSH: inserisceun elementoin S POP: restituiscel ultimoelementoinseritoe

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

ADT STACK (PILA) ADT STACK (PILA) IL COMPONENTE STACK (PILA) CONSIDERAZIONI. Per utilizzare istanze del tipo di dato astratto

ADT STACK (PILA) ADT STACK (PILA) IL COMPONENTE STACK (PILA) CONSIDERAZIONI. Per utilizzare istanze del tipo di dato astratto ADT STACK (PILA) Collezione di elementi dello stesso tipo (multi-insieme) gestito con politica LIFO (Last-In -- First-Out): t) il primo elemento entrato è l ultimo a uscire Svariate applicazioni del concetto

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

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

in più stringhe,... ADT un tipo è caratterizzato dalle operazioni consentite su di esso: un numero è qualcosa che si può moltiplicare, sommare,...

in più stringhe,... ADT un tipo è caratterizzato dalle operazioni consentite su di esso: un numero è qualcosa che si può moltiplicare, sommare,... ADT un tipo è caratterizzato dalle operazioni consentite su di esso: un numero è qualcosa che si può moltiplicare, sommare,... una stringa è qualcosa che si può concatenare, spezzare in più stringhe,...

Dettagli

PILE E CODE. Pile (stack):

PILE E CODE. Pile (stack): PILE E CODE Sono tipi di dato che consentono di rappresentare sequenze di elementi in cui gli inserimenti e le cancellazioni sono eseguiti con particolari modalita` (politiche o discipline). Pile (stack):

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

ADT STACK (PILA) Svariate applicazioni del concetto di stack:

ADT STACK (PILA) Svariate applicazioni del concetto di stack: Stack e Code Obiettivi: Introdurre l ADT Stack e l ADT Coda e le operazioni tipiche su esse Discuterne la realizzazione sequenziale (mediante vettori) e la realizzazione collegata (puntatori a strutture)

Dettagli

La struttura dati PILA

La struttura dati PILA Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 La struttura dati PILA Pietro Di Lena - pietro.dilena@unibo.it Introduzione Una pila (o stack) è una struttura dati astratta

Dettagli

IL COMPONENTE STACK (pila)

IL COMPONENTE STACK (pila) COMPONENTI SOFTWARE Diverse tipologie di componenti: Librerie semplici collezioni di procedure e funzioni.non fanno uso di variabili globali o statiche e non definiscono nuovi tipi (visibili all esterno)

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

Lezione 11 programmazione in Java. Anteprima. Gestione della memoria

Lezione 11 programmazione in Java. Anteprima. Gestione della memoria Lezione 11 programmazione in Java Nicola Drago nicola.drago@univr.it Dipartimento di Informatica Università di Verona Anteprima Gestione della Memoria Dati dinamici e statici Il passaggio di parametri

Dettagli

Programmare. Compilatori e interpreti. Editor :: vi. Hello1.c. #include <stdio.h> >> cc Hello1.c. main() { printf( \n Hello World!

Programmare. Compilatori e interpreti. Editor :: vi. Hello1.c. #include <stdio.h> >> cc Hello1.c. main() { printf( \n Hello World! Programmare Hello1.c #include printf( \n Hello World! \n ); >> cc Hello1.c >> a.out Hello World! >> Hello1.c = file sorgente per scriverlo occorre un editor cc = compilatore per altri linguaggi

Dettagli

Algoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet

Algoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet Algoritmi e Strutture di Dati I 1 Algoritmi e Strutture di Dati I Massimo Franceschet Algoritmi e Strutture di Dati I 2 Pila (stack) La struttura di dati pila rappresenta un insieme dinamico nel quale

Dettagli

La Struttura Dati Pila

La Struttura Dati Pila La Struttura Dati Pila La pila o stack è una particolare struttura dati in cui l'inserimento e la cancellazione sono consentite solo in una specifica posizione, chiamata cima (top) dello stack. La gestione

Dettagli

Esercizio. Strutture Dati

Esercizio. 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

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 elementari

Strutture dati elementari Strutture dati elementari Luciano Bononi e Moreno Marzolla Dip. di Scienze dell'informazione Università di Bologna bononi@cs.unibo.it marzolla@cs.unibo.it http://www.moreno.marzolla.name/ Original work

Dettagli

heap concetti ed applicazioni

heap concetti ed applicazioni heap concetti ed applicazioni ADT coda di priorità operazioni getfirst restituisce l'elemento nella struttura con massima priorità deletefirst cancella l'elemento nella struttura con massima priorità insert

Dettagli

Implementazione della coda con liste concatenate. x v. il front della coda è memorizzato nel primo nodo (head) della lista

Implementazione della coda con liste concatenate. x v. il front della coda è memorizzato nel primo nodo (head) della lista Liste concatenate Implementazione della coda con liste concatenate head (front della coda) tail (rear della coda) Ø e y a x v il front della coda è memorizzato nel primo nodo (head) della lista il rear

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-12.30 in Aula 2 Giovedì 8.30-10.30 in

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione Corso di Laurea in Informatica Astrarre sui dati Valeria Carofiglio (Questo materiale è una rivisitazione del materiale prodotto da Nicola Fanizzi) Obiettivi tipi di dato astratti

Dettagli

Prima prova in itinere di Informatica 3 IOL Prof.ssa Sara Comai A.A dicembre 2004

Prima prova in itinere di Informatica 3 IOL Prof.ssa Sara Comai A.A dicembre 2004 Prima prova in itinere di Informatica 3 IOL Prof.ssa Sara Comai A.A. 2004-2005 3 dicembre 2004 Esercizio 1 - sintassi Si descrivano i diagrammi sintattici oppure l'ebnf per descrivere semplici espressioni

Dettagli

Heap e Code di Priorità

Heap 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

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

In una coda gli inserimenti si fanno alla fine e le cancellazioni all inizio! First In First Out

In una coda gli inserimenti si fanno alla fine e le cancellazioni all inizio! First In First Out In una coda gli inserimenti si fanno alla e e le cancellazioni all inizio! First In First Out Progr II - Coda 1 CODA: i requisiti Una coda (queue) è un ADT in cui le operazioni sono inserimenti e cancellazioni

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

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

CONCRETE (interne): è la effettiva implementazione della struttura nel linguaggio e relativa allocazione in memoria della struttura astratta

CONCRETE (interne): è la effettiva implementazione della struttura nel linguaggio e relativa allocazione in memoria della struttura astratta STRUTTURE DI DATI DINAMICHE Le strutture dati sono insiemi di dati caratterizzati dalle proprietà logiche e dalla loro forma di aggregazione (vettore, matrice, pila, coda ); le possiamo analizzare da un

Dettagli

Strutture dati elementari

Strutture dati elementari Strutture dati elementari Damiano Macedonio Università Ca' Foscari di Venezia mace@unive.it Original work Copyright Alberto Montresor, University of Trento (http://www.dit.unitn.it/~montreso/asd/index.shtml)

Dettagli

Assembly (3): le procedure

Assembly (3): le procedure Architettura degli Elaboratori e delle Reti Lezione 13 Assembly (3): le procedure Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano (Patterson-Hennessy:

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio 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.

Dettagli

Strutture Dati Dinamiche. Monday, January 10, 2011

Strutture Dati Dinamiche. Monday, January 10, 2011 Strutture Dati Dinamiche 1 Che cos è una struttura dati Per struttura dati si intende comunemente la rappresentazione dei dati e le operazioni consentite su tali dati In linguaggi più evoluti del C esistono

Dettagli

Liste, Pile e Code. 1. L ADT Lista. Liste Pile e Code Pag. 1/18

Liste, Pile e Code. 1. L ADT Lista. Liste Pile e Code Pag. 1/18 Liste Pile e Code Pag. 1/18 Liste, Pile e Code Le liste, le pile e le code rappresentano tre ADT elementari che ricorrono frequentemente nella vita reale. Esempi usuali di una lista, una pila ed una coda

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Strutture di dati Laboratorio di Informatica 5. Strutture / Array di oggetti / Pila&Coda in C++ Una struttura è un insieme finito di variabili (dette campi) non necessariamente dello stesso tipo, ognuna

Dettagli

Insiemi Dinamici. Operazioni tipiche (S:struttura, x: riferimento(puntatore) alla chiave, k: chiave)

Insiemi Dinamici. Operazioni tipiche (S:struttura, x: riferimento(puntatore) alla chiave, k: chiave) Insiemi Dinamici Insiemi che possono essere modificati Elementi: oggetti = eventualmente: chiavi + (eventuali) dati satellite; l insieme delle chiavi puo essere totalmente ordinato Operazioni tipiche (S:struttura,

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA7 B3 Gestione di una coda 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Tecnica di allocazione dinamica Concetto di coda e operazioni relative

Dettagli

Astrazione Dati. Nicola Fanizzi. Linguaggi di Programmazione [010194] 10 mag, Dipartimento di Informatica Università degli Studi di Bari

Astrazione Dati. Nicola Fanizzi. Linguaggi di Programmazione [010194] 10 mag, Dipartimento di Informatica Università degli Studi di Bari Astrazione Dati Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari Linguaggi di Programmazione [010194] 10 mag, 2016 Sommario 1 Astrazione dati Incapsulamento Esempio / ADT pila

Dettagli

Struttura Dati Coda: Teoria

Struttura Dati Coda: Teoria Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica Corso di Laurea in Ingegneria Informatica : Teoria La presente dispensa è stata prodotta dal Prof.S.Cavalieri, ed è ufficialmente adottata

Dettagli