La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Fondamenti di Informatica1 Gli alberi E' un tipo di dato astratto che rappresenta relazioni gerarchiche tra oggetti Le relazioni esplicate sono tra: –genitori.

Presentazioni simili


Presentazione sul tema: "Fondamenti di Informatica1 Gli alberi E' un tipo di dato astratto che rappresenta relazioni gerarchiche tra oggetti Le relazioni esplicate sono tra: –genitori."— Transcript della presentazione:

1 Fondamenti di Informatica1 Gli alberi E' un tipo di dato astratto che rappresenta relazioni gerarchiche tra oggetti Le relazioni esplicate sono tra: –genitori –figli –fratelli Radice, foglie Alberi binari, N-ari

2 Fondamenti di Informatica2 Gli alberi binari Ogni nodo ha al massimo 2 figli Sui figli è definito un ordinamento Ogni figlio può essere la radice di un nuovo albero binario Vantaggio: migliorare l'efficenza della visita di una lista

3 Fondamenti di Informatica3 Gli alberi binari Metodi: –test_albero_vuoto: alb_bin boolean –costruisci:alb_bin x nodo x alb_bin alb_bin –radice: alb_bin nodo –sinistro: alb_bin alb_bin –destro: alb_bin alb_bin

4 Fondamenti di Informatica4 Gli alberi binari Algoritmi di visita: –visita in preordine (ABCD) –visita in postordine (BDECA) –visita simmetrica (BADCE) A BC DE

5 Fondamenti di Informatica5 Alberi binari: rappr. sequenziale Utilizza array di lunghezza predefinita –radice in prima posizione –figli in posizione (2i) e (2i+1) Alberi completi Per gli alberi non completi serve un tag booleano che indica se il nodo esiste

6 Fondamenti di Informatica6 A BC DE Atrue B C 0false 0 Dtrue E 7 Alberi binari: rappr. sequenziale

7 Fondamenti di Informatica7 Svantaggi: –utilizzo elevato memoria –operazioni in inserimento complesse (richiedono spostamenti nell'array) Vantaggi: –accesso semplice (anche per elementi ad una specifica profondità) Alberi binari: rappr. sequenziale

8 Fondamenti di Informatica8 Alberi binari: rappresentazione collegata Ogni elemento della lista contiene: –un atomo (la radice dell'albero) –una lista (sottoalbero sinistro) –una lista (sottoalbero destro) ( A (B () () ) ( C (D () () ) (E () () ) ) )

9 Fondamenti di Informatica9 Alberi binari: rappr. collegata mediante array Array a tre valori: –indice sottoalbero sinistro –valore del nodo –indice sottoalbero destro Serve una variabile inizio per definire l'indice della radice all'interno dell'array

10 Fondamenti di Informatica10 0D0 5A3 1C B0 0E Inizio = 2 Alberi binari: rappr. collegata mediante array A BC DE

11 Fondamenti di Informatica11 Alberi binari: rappr. collegata mediante puntatori Ogni nodo viene rappresentato con tre campi: –l'informazione associata al nodo –un puntatore al sottoalbero di sinistra –un puntatore al sottoalbero di destra

12 Fondamenti di Informatica12 Alberi binari: rappr. collegata mediante puntatori A BC DE A 0B0 C 0E00D0

13 Fondamenti di Informatica13 Esercizio Data in ingresso una rappresentazione parentetica di un albero, generare l'albero corrispondente utilizzando la rappresentazione collegata sia mediante array che mediante puntatori

14 Fondamenti di Informatica14 Alberi binari di ricerca Problema: –memorizzare grosse quantità di dati soggetti a frequenti operazioni di ricerca Soluzione: –utilizzo di alberi di ricerca in cui il valore di un nodo è per definizione maggiore o uguale di quello dei nodi del sottoalbero sx, e minore del sottoalbero dx

15 Fondamenti di Informatica15 Alberi binari di ricerca Vantaggi: –minor complessità Requisiti: –profondità ridotta dell'albero –alberi bilanciati –bilanciamento dell'albero

16 Fondamenti di Informatica16 Alberi n-ari Non hanno limiti sul numero di figli Generalmente: –visita solo preordine e postordine –rappresentazione mediante lista –rappresentazione mediante albero binario (miglior sfruttamento della memoria) –rappresentazioni tramate (per ottimizzare certe operazioni)

17 Fondamenti di Informatica17 I grafi Strutture che rappresentano relazioni binarie su un insieme di elementi (grafi orientati) E' necessario definire politiche di visita (in presenza di cicli è possibile raggiungere nodi già visitati; serve un tag di visita)

18 Fondamenti di Informatica18 Visita in profondità di un grafo Depth first serach: analoga alla visita in preordine

19 Fondamenti di Informatica19 Visita in ampiezza di un grafo Breadth first serach: analoga alla visita in postordine

20 Fondamenti di Informatica20 Rappresentazione dei grafi Per rappresentare un grafo esistono diverse possibilità: –matrice delle adiacenze –liste dei successori –lista doppia

21 Fondamenti di Informatica21 Matrice delle adiacenze La matrice è così definita: –tante righe e colonne quanti sono i nodi del grafo –gli elementi della matrice sono di tipo booleano –il generico elemento e i,j è definito: true, se esiste un arco tra il nodo i e il nodo j false, altrimenti

22 Fondamenti di Informatica22 Matrice delle adiacenze

23 Fondamenti di Informatica23 Matrice delle adiacenze Se i valori dei nodi non sono numerici, serve una corrispondenza tra nodi (ad es. stringhe) con gli indici "Vettore dei nodi" A S R V K P E AEVK P R S

24 Fondamenti di Informatica24 Matrice delle adiacenze Se anche gli archi sono etichettati, gli elementi della matrice non saranno booleani, ma del tipo usato per le etichette

25 Fondamenti di Informatica25 Matrice delle adiacenze Vantaggi: –semplice –accesso diretto alle informazioni sugli archi (meccanismi di accesso ad una matrice) Svantaggi: –numero massimo di nodi del grafo –occupazione in memoria pari a N 2 –l'analisi di un nodo richiede una scansione

26 Fondamenti di Informatica26 Matrice delle adiacenze: rappresentazione compatta Generalmente la matrice delle adiacenze è sparsa, quindi si può usare: –la rappresentazione compatta usata per le matrici sparse –una nuova rappresentazione che evidenzia solo gli archi nodo di part: nodo di arr:

27 Fondamenti di Informatica27 Liste di successori Si associa ad ogni nodo una lista semplice, realizzata mediante rappresentazione collegata In ogni lista si memorizza l'insieme dei successori del nodo senza un ordinamento particolare I nodi sono in corrispondenza con gli archi per cui si possono memorizzare anche evenuali etichette

28 Fondamenti di Informatica28 Liste di successori

29 Fondamenti di Informatica29 Liste di successori Vantaggi: –migliore occupazione della memoria: proporzionale a N+M –più efficiente determinare la lista dei successori Svantaggi: –verifica di un arco tra i e j è poco agevole –l'utilizzo di un vettore per le info sui nodi

30 Fondamenti di Informatica30 Liste doppie Si utilizza una lista per memorizzare le informazioni dei nodi Vantaggi: –il numero di nodi non ha un limite massimo Svantaggi: –l'accesso ai nodi è più complesso

31 Fondamenti di Informatica31 Percorso minimo in un grafo Problema: –dato un grafo con archi etichettati con valore interi positivi, si trovi il percorso più breve tra due nodi Soluzione: –proposta da Dijkstra


Scaricare ppt "Fondamenti di Informatica1 Gli alberi E' un tipo di dato astratto che rappresenta relazioni gerarchiche tra oggetti Le relazioni esplicate sono tra: –genitori."

Presentazioni simili


Annunci Google