1 Ultima Lezione del Corso di Fondamenti di Informatica 1 a.a. 2005 – 06 Ma 29-Nov-2005.

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

Astrazioni Polimorfe e Tipi Generici. 2 Polimorfismo Dal Greco molte forme Una variabile polimorfa può riferirsi a oggetti di classi diverse Un metodo.
Argomenti della lezione
1 Le s-espressioni. 2 Un nuovo esempio completo: le s-espressioni Sexpr 4 alberi binari (possibilmente vuoti) che hanno sulle foglie atomi (stringhe)
1 Progettazione gerarchica delle s- espressioni, utilizzando lereditarietà
Modello dati LISTA LISTA: LISTA: sequenza finita di 0 o più elementi LISTA di tipo T: lista in cui tutti gli elementi sono dello stesso tipo T. es. lista.
Interfacce Java.
Tipi di dato astratti Lista, Pila, Coda, Albero.
SQL (Standard query language) Istruzioni per la creazione di una tabella: Create table ( tipo, (, [vincoli]) Primary key ( ) CHIVE PRIMARIA Foreign key(
Informatica 2 Lezione 4 Corso di laurea in matematica Informatica 2 Dott. Ing. Leonardo Vito Corso di laurea matematica indirizzo matematica per le applicazioni.
1 Astrazioni sui dati : Specifica ed Implementazione di Tipi di Dato Astratti in Java.
Alcune Classi Standard Object, Vettori. Esercizio dellultima volta Superclasse Persona Sottoclasse Libro.
Esercizio 2. Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) durante la valutazione delle seguenti dichiarazioni di classe.
Le gerarchie di tipi.
Strutture dati elementari
Programmazione Parametrica ( a.k.a. Generics )
Programmazione Parametrica ( a.k.a. Generics ). Introduzione ai meccanismi e concetti della programmazione parametrica Generics e relationi di sottotipo.
1 struct Pila { private: int size; int defaultGrowthSize; int marker; int * contenuto; void cresci(int increment); public: Pila(int initialSize) ; Pila();
Model – View - Controller
Esempio: Tombola! Parte seconda.
Unified Modeling Language class C {…} class B extends C {…} Esiste una notazione grafica per mostrare le relazioni di ereditarietà. Object StringC B Tutte.
Sezione: Costruttori Costruttori. Definizione dei costruttori Se per una classe A non scrivo nessun costruttore, il sistema automaticamente crea il costruttore.
prompt> java SumAverage
1 struct Pila { private: int size; int defaultGrowthSize; int marker; int * contenuto; void cresci(int increment); public: Pila(int initialSize) ; Pila();
Astrazioni sul controllo Iteratori. 2 Nuove iterazioni Definendo un nuovo tipo come collezione di oggetti (p. es., set) si vorrebbe disporre anche di.
Lezione XXVII Lu 14-Nov-2005 ADT Coda (Queue)
1. Conoscere luso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali.
JAVA C import java.util.*; #include <stdio.h>
Hashing.
Argomenti della lezione
Hashing.
Algoritmi e Strutture Dati
Modello dati LISTA LISTA: LISTA: sequenza finita di 0 o più elementi LISTA di tipo T: lista in cui tutti gli elementi sono dello stesso tipo T. es. lista.
Programmazione Parametrica ( a.k.a. Generics ). Introduzione ai meccanismi e concetti della programmazione parametrica Generics e relationi di sottotipo.
Java Collections.
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
22 maggio 2002 Avvisi: Ultima lezione: mercoledì 29 maggio II Esonero: mercoledì 5 giugno, ore 10:00.
Corso di informatica Athena – Periti Informatici
L2 Elaborazione di immagini in C/C++
Ese 2 (del 31 Marzo 2004). Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) durante la valutazione delle seguenti dichiarazioni.
Multiset. Progettare (specifica con identificazione delle eventuali astrazioni necessarie, incluse eccezioni, e implementazione) del tipo di dato Multiset,
Test con JUnit. zJUnit è un ambiente di test per programmi Java ySviluppato da Kent Beck É possibile usare JUnit allinterno di Eclipse per eseguire i.
© M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti A.A Collezioni di dati in Java.
Ugo de'Liguoro - Informatica 2 a.a. 03/04 Lez. 9 Tipi parametrici Collezioni generiche. Strutture matematiche parametriche.
Collection & Generics in Java
Fondamenti di informatica T-A Esercitazione 7 : Collezioni AA 2012/2013 Tutor : Domenico Di Carlo.
Nota (rif. alla lezione precedente): Vector vs ArrayList Le classi generiche Vector e ArrayList sono sostanzialmente equivalenti, ma: I metodi.
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
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.
Ese 3 (del 3 Aprile 2003). Testo Progettare la specifica e l’implementazione del tipo di dato astratto modificabile Stack, supponendo che gli elementi.
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.
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.
Esercizi iteratori. Matrice import java.util.Iterator; public class MatrixIterator implements Iterator { private Matrix matrix; private int currentRow.
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.
Ex.1 - Astrazioni su Dati Si abbia il tipo di dato stack di interi, IntStack, specificato sotto: public class IntStack { \\ OVERVIEW: uno Stack è una collezione.
Corso di Algoritmi e Strutture Dati con Laboratorio Tipi di dato pila e coda.
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo Strutture dati di tipo astratto 19 Strutture dati,
Collezioni in Java. Collection Framework JFC Java Collection Framework (JCF) fornisce il supporto a qualunque tipo di struttura dati, nel quadro di un'architettura.
Strutture dati elementari Moreno Marzolla Dip. di Scienze dell'Informazione Università di Bologna
La codifica di Huffman Un'implementazione in C++ (parte del materiale è opera di Mark Nelson, Dr. Dobb’s Journal, Gennaio 1996)‏
Pompe di calore a integrazione geotermica
Collection & Generics in Java
Sommario cos’è un tipo di dato astratto astrazione tramite specifica:
concetti ed applicazioni
Usando strutture dati nella piattaforma Java Collections Framework
Ese 3 (del 3 Aprile 2003).
Transcript della presentazione:

1 Ultima Lezione del Corso di Fondamenti di Informatica 1 a.a – 06 Ma 29-Nov-2005

2

3 public interface Container { boolean isEmpty() void makeEmpty(); /* spesso si definisce anche size() che restituisce il numero di elementi nel contenitore */ // int size(); } ADTCONTENITORE

4 public interface Stack extends Container { void push(Object obj); Object top() throws EmptyStackException; Object pop() throws EmptyStackException; } Strutture Dati Complessita' Temporale Array (operazioni in coda) Lista concatenata push() O(1) top() O(1) pop() O(1) ADT PILA (STACK) LIFO java.util.Stack (con qualche differenza)

5 public interface Queue extends Container { void enqueue(Object obj); Object getFront() throws EmptyQueueException; Object dequeue() throws EmptyQueueException; } Strutture Dati Complessita' Temporale Array circolare Lista concatenata enqueue() O(1) getFront() O(1) dequeue() O(1) ADT CODA (QUEUE) FIFO Non ce implementazione nella libreria standard interfaccia java.util.Queue (con qualche differenza)

6 public interface List extends Container { ListIterator getIterator(); } public interface ListIterator { boolean hasNext(); void add(Object obj); Object next() throws NoSuchElementException; void remove() throws IllegalStateException; } hasNext() O(1) O(1) next() O(1) O(1) add() O(n) O(1) remove() O(n) O(1) Array Lista concatenata Complessita' Temporale Strutture Dati ADTLISTA java.util.ArrayList, Vector, LinkedList (con qualche differenza)

7 public interface Dictionary extends Container { void insert(Comparable key, Object value); Object find(Comparable key); void remove(Comparable key); } Strutture Dati Complessita' Temporale Array non ordinato Array ordinato Lista Concatenata insert() O(n)* O(n) O(1) find() O(n) O(lgn) O(n) remove() O(n) O(n) O(n) ADTDIZIONARIO * O(1) senza verifica di univocità della chiave java.util.HashMap, interfaccia java.util.Map

8 public interface Table extends Container { void insert(int key, Object value); Object find(int key); void remove(int key); } insert() O(1) find() O(1) remove() O(1) Array Complessita' Temporale Strutture Dati ADTTABELLA Uso non ottimale della memoria fattore di riempimento (dati contenuti/dimensione tabella)

9 interface HashTable extends Container { void insert(Object key, Object value); Object find(Object key); void remove(Object key); } insert() O(n/M)* find() O(n/M) remove() O(n/M) * M dimensione della tabella Nellipotesi che la funzione di hash sia uniforme Array e Lista Concatenata (bucket) Complessita' Temporale Strutture Dati ADTHASH TABLE java.util.Hashtablejava.util.Hashtable, java.util.HashMapjava.util.HashMap

10 interface HashTable extends Container { void add(Object obj); boolean contains(Object obj); Object[] toArray(); } add() O(n 2 ) O(n) contains() O(n 2 ) O(lgn) toArray() O(n 2 ) O(n) Union O(n 2 ) O(nlgn) Intersect O(n 2 ) O(nlgn) subtract O(n 2 ) O(nlgn) Array non ordinato Array Ordinato Complessita' Temporale Strutture Dati ADTSET interfacce java.util.Set, SortedSet classi: HashSet

11 Esercitazione