Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Interfaccia Set
Operazioni sul TDA Set public interface Set {
// Restituisce il numero degli elementi nell’insieme
public int size();
Le operazioni che possiamo fare su di
// Restituisce true se l’insieme è vuoto
un insieme A sono: public boolean isEmpty();
– union(A,B) // Rimpiazza this con l’unione di this e B
• Rimpiazza A con l’unione di A e B public Set union(Set B);
– intersect(A,B) // Rimpiazza this con l’intersezione di this e B
• Rimpiazza A con l’intersezione di A e B public Set intersect(Set B);
Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 5 Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 6
Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 13 Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 14
Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 17 Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 18
Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 19 Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 20
Il TDA Partition Interfaccia Partition – 1
Una partizione è una collezione di
public interface Partition {
insiemi S1,…,Sk a due a due disgiunti
// Restituisce il numero degli insiemi nella partizione
– Si ∩ Sj = ∅ per ogni i ≠ j
public int size();
TDA Partition supporta i seguenti metodi:
– makeSet(x) // Restituisce true se la partizione è vuota
• Crea l’insieme contenente il solo elemento x
public boolean isEmpty();
– union(A, B)
• Unisce gli insiemi A e B distruggendo B e
restituendo A // Restituisce l’insieme contenente il solo elemento x
– find(x) public Set makeSet(Object x);
• Restituisce l’insieme che contiene l’elemento x
Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 21 Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 22
Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 23 Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 24
Nota Interfaccia PartitionAware
public interface PartitionAware {
Ad ogni elemento dobbiamo associare
l’insieme a cui appartiene public int size();
Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 25 Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 26
A B
5 11 8 2 9 3 1 La classe HashTablePartition
Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 33 Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 34
5
8 10 8 10
5
2
2 11 11
8 10
8 10 2 12 2 12
3 6
3 6
11 3 6 3 6
11
9 12
9 12 9 9
Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 41 Prof. Carlo Blundo Laboratorio di Algoritmi e Strutture Dati 42