Strutture dati lineari

Slides:



Advertisements
Presentazioni simili
1 La Standard Template Library vettori, liste, mappe, …. find, replace, reverse, sort, …. puntatori intelligenti La libreria standard STL e una libreria.
Advertisements

Tipi di dato astratti Lista, Pila, Coda, Albero.
Estendere i linguaggi: i tipi di dato astratti
Unità D2 Archivi e file.
Procedure In assembler.
1 Semantica Operazionale di un frammento di Java: lo stato.
Liste di Interi Esercitazione. Liste Concatenate Tipo di dato utile per memorizzare sequenze di elementi di dimensioni variabile Definizione tipicamente.
LIP: 19 Aprile Contenuto Soluzione Compitino Tipo di dato MultiSet, estensione con sottoclasse.
Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A CDL in Ingegneria Elettronica - A.A Strutture dati dinamiche.
Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A CDL in Ingegneria Elettronica - A.A Strutture dati dinamiche.
UD 3: “Le Liste” UD 4: “Pile e Code” UD 5: “Alberi e grafi”
Strutture dati elementari
Algoritmi in C++ (1) da completare
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
1 FONDAMENTI DI INFORMATICA II Ingegneria Gestionale a.a ° Ciclo Liste.
Tail recursion: esempio
Alberi binari Definizione della struttura dati: struct tree { };
07/04/2003Algoritmi Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Esercizi su code Date due code in ingresso a valori interi in ordine crescente, scrivere una funzione che restituisca una terza coda che contenga i valori.
AA2003/04 © M.A. Alberti Programmazione Strutture dati 1 Programmazione Corso di laurea in Informatica.
memoria gestita staticamente:
Fondamenti di Informatica1 Realizzazione software Due fasi: 1. Specifica dell'algoritmo 1.a Definizione dei dati 1.b Definizione della modalità della loro.
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
Tavole dinamiche Spesso non si sa a priori quanta memoria serve per memorizzare dei dati in un array, in una tavola hash, in un heap, ecc. Può capitare.
1.Scrivere una funzione per cercare un numero x in una lista circolare di interi. La funzione deve restituire NULL se il numero non esiste. 2.Scrivere.
15 maggio 2002 Avvisi: Ultima lezione: mercoledì 29 maggio II Esonero: mercoledì 5 giugno, ora da stabilire.
Corso di informatica Athena – Periti Informatici
Programmazione di Calcolatori
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA FINALE DEL 21 MAGGIO 2007 NOME: COGNOME: ________________________________________________________________________________.
Conversione da base 10 a base X (Utilizzo della pila)
Grafi Rappresentazione mediante liste di adiacenza:
Alberi binari Definizione della struttura dati: struct tree { };
Nota (rif. alla lezione precedente): Vector vs ArrayList Le classi generiche Vector e ArrayList sono sostanzialmente equivalenti, ma: I metodi.
Schiavone & Scalas 2 In informatica, il termine stack o pila viene usato in diversi contesti per riferirsi a strutture dati le cui modalità d'accesso.
1 FONDAMENTI DI INFORMATICA II Ingegneria Gestionale a.a ° Ciclo Pile e Code.
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
AlgoLab - Pile e Code Pile e code Laboratorio di Algoritmi 02/03 Prof. Ugo de’ Liguoro.
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
1 Tipi di Dato §descrittori, tipi, controllo e inferenza dei tipi §specifica (semantica) e implementazione di tipi di dato l implementazioni “sequenziali”
Algoritmi e Strutture Dati Strutture Dati Elementari.
MODULO STRUTTURE DATI FONDAMENTALI: Strutture dinamiche
Nucleo di Java: Struttura e Semantica Espressioni Assegnamento Controllo di sequenza Dichiarazioni.
Liste Concatenate 11 Aprile E’ una delle strutture dati fondamentali in tutti i linguaggi di programmazione di alto livello Una Lista Concatenata.
1 Analisi ammortizzata Si considera il tempo richiesto per eseguire, nel caso pessimo, una intera sequenza di operazioni. Se le operazioni costose sono.
Ese 3 (del 3 Aprile 2003). Testo Progettare la specifica e l’implementazione del tipo di dato astratto modificabile Stack, supponendo che gli elementi.
Ese 3 (del 3 Aprile 2003). Testo Progettare la specifica e l’implementazione del tipo di dato astratto modificabile Stack, supponendo che gli elementi.
1 Strutture dati. 2 Astrazione Non vogliamo sapere l’organizzazione fisica dei dati  indirizzi e celle di memoria Ci interessa solo la loro organizzazione.
LIP: 2 Maggio 2008 Classi Astratte. Cos’e’ una Classe Astratta una classe astratta e’ un particolare tipo di classe permette di fornire una implementazione.
Sommario Oggetti immutabili e non Tipi Primitivi: String, Arrays.
Ese 1 e 3 (del 6 Aprile 2005). Primo Ese Si identifichino gli errori che il compilatore segnalerebbe per il seguente programma Tipi Legami tra dichiarazioni.
LIP: 11 Maggio 2007 Classi Astratte. Cos’e’ una Classe Astratta una classe astratta e’ un particolare tipo di classe permette di fornire una implementazione.
Esercitazione 14 Marzo Esercizio dell’altra volta Definire un tipo di dato Abbonato i cui oggetti descrivono le informazioni relative ad un abbonato.
Liste Concatenate 28 Marzo Avviso Martedi’ 4 Aprile: Verifica di LIP Per iscriversi (obbligatorio) inviare un e- mail entro venerdi’ 31 Marzo a.
1 Semantica Operazionale di un frammento di Java: intro estensione (con piccole varianti) di quella di FP | v |
LIP: 4 Maggio 2007 Interfacce. Cos’e’ una Interfaccia una interfaccia e’ un particolare tipo di classe contiene solo la specifica non ha implementazione.
LIP: 18 Aprile 2008 Interfacce. Rappresentazione Lista val next vuota Lista vuota: any true Lista non vuota: any true 154 false 24 false.
Corso di Algoritmi e Strutture Dati con Laboratorio Tipi di dato pila e coda.
Corso di Algoritmi e Strutture Dati con Laboratorio Java Collections Framework (II parte)
1 MODULO STRUTTURE DATI FONDAMENTALI: Strutture dinamiche classe 4° INDUSTRIALE ABACUS Ud1Strutture dati lineariTempi -Liste semplicemente puntate 3h+3h.
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo Strutture dati di tipo astratto 19 Strutture dati,
13. Strutture dati dinamiche Ing. Simona Colucci Informatica - CDL in Ingegneria Industriale- A.A
1 MODULO STRUTTURE DATI FONDAMENTALI: Strutture dinamiche classe 4° INDUSTRIALE INFORMATICA Focus on.
Transcript della presentazione:

Strutture dati lineari Lista Pila Coda

Strutture dati Per gestire un insieme dinamico di elementi occorre implementarlo mediante una struttura dati. Una struttura dati è composta da nodi, ciascuno dei quali contiene un elemento dell’insieme ed eventuali altre informazioni (puntatori) che servono per la gestione della struttura.

Le strutture fisiche dei dati Per implementare le strutture dati, si devono utilizzare le strutture fisiche fornite dai linguaggi che possono avere dimensione statica o dinamica. Un array, per esempio, è una struttura di memorizzazione dalla dimensione statica. Strutture fisiche dalla dimensione dinamica si possono implementare grazie all’uso dei puntatori.

Strutture dati lineari Una struttura dati si dice lineare se i suoi elementi sono organizzati in modo sequenziale, ovvero se logicamente gli stessi sono posizionati uno dopo l’altro. Pila Coda Lista

Pila (stack) La pila è una struttura dati di tipo LIFO che garantisce che l’ultimo elemento depositato nella pila sia il primo a essere servito. LIFO (Last-In First-Out, “l’ultimo arrivato è il primo ad essere servito”) Esempio pila di piatti, pila di libri, di monete

Operazioni sulla pila push pop top vuota consente di inserire un nuovo elemento in testa alla pila pop permette di estrarre il primo elemento in cima alla pila top consente di leggere il primo elemento in cima alla pila senza estrarlo da essa vuota restituisce true se la pila è vuota, false in caso contrario

Coda La coda è una struttura dati di tipo FIFO che garantisce che il primo elemento inserito sia il primo a essere servito. FIFO (First-In First-Out), il primo elemento a entrare è anche il primo a uscire

Operazioni sulla coda Le tipiche operazioni che si possono effettuare su una coda sono le seguenti: enqueue (accodare) consente di accodare un elemento alla coda dequeue (togliere dalla coda) consente invece di eliminare l’elemento che da più tempo è presente nella coda

Lista concatenata La lista concatenata è una collezione ordinata di elementi, ciascuno dei quali è concatenato al successivo mediante un riferimento che indica dove andare a prendere il successivo elemento. In una lista concatenata non è possibile accedere in modo diretto a un elemento, bensì è necessario scorrere tutti gli elementi fino a raggiungere quello cercato. Ogni elemento della lista è contenuto in un nodo, in cui è presente anche un puntatore all’elemento successivo. L’ultimo elemento della lista avrà il puntatore nullo, mentre il puntatore al primo nodo si conserva in una variabile opportuna.

Operazioni sulla lista Le operazioni principali che si possono effettuare su una lista sono: inserimento ricerca cancellazione Esempio di cancellazione: