Alberi Binari di Ricerca
|
|
|
- Fabiola Falco
- 9 anni fa
- Просмотров:
Транскрипт
1 Alberi Binari di Ricerca Prof. G. M. Farinella
2 Riferimenti Bibliografici Cormen T.H., Leiserson C.E., Rivest R.L Introduction to Algorithms, Third Edition, MIT Press, Argomentitrattatiin questalezione: III Data Structures, 12 Binary Search Trees
3 Nella lezione precedente Insiemi dinamici che implementano le funzionalità di Item search(key key) void insert(key key, Item item) void delete(key key)
4 Nella lezione precedente Implementazione Array ordinato: ricerca O(log n) inserimento/cancellazione O(n) Lista non ordinata: Ricerca/cancellazione O(n) inserimento O(1)
5 Riepilogo Concetti di Base: Alberi Binari Prof. G. M. Farinella
6 Alberi Binari Un albero binario è un albero dove ogni nodo ha al massimo due figli. Tutti i nodi tranne la radice hanno un nodo padre. Le foglie dell albero non hanno figli.
7 Sottoalberi
8 Sottoalberi
9 i è padre di k e j j e k sono i due figli di i (i,j) è l arco che unisce i e j Padre - Figlio
10 Foglie, nodi interni e percorsi In nodo di un albero binario si dice nodo foglia se non ha figli (cioè se entrambi i sottoalberi di cui è radice sono vuoti). Un nodo si dice nodo interno se ha almeno un figlio. Un percorso dal nodo i al nodo j è la sequenza di archi che devono essere attraversati per raggiungere il nodo j dal nodo i.
11 In un albero binario la profondità di un nodo è la lunghezza del percorso dalla radice al nodo (cioè il numero di archi tra la radice e il nodo). La profondità maggiore di un nodo all interno di un alberoè l altezza dell albero. Profondità e altezza
12 Albero Binario Pieno Un albero binario si dice pieno se: tutte le foglie hanno la stessa profondità h tutti i nodi interni hanno grado 2 Un albero pieno di n nodi ha altezza esattamente Un albero pieno di altezza h ha esattamente 2*h+1-1 nodi (2*h-1 nodi interni + 2*h foglie).
13
14 Albero Binario Completo Un albero binario si dice completo se: tutte le foglie hanno profondità h o h-1, dove h è l altezza dell albero tutti i nodi interni hanno 2 figli, eccetto al più uno.
15 Rappresentazione alberi Binari Un albero binario si può rappresentare con una lista concatenata in cui si usano i campi: p[x] per puntare al padre del nodo x left[x] per puntare al figlio sinistro right[x] per puntare al figlio destro
16 Rappresentazione alberi Binari Se un figlio non esiste, il corrispondente puntatore è NIL. La radice, root[t], ha p[root[t]] = NIL. Se root[t] = NIL, l albero è vuoto Per le foglie lef t[x] = right[x] = NIL
17 Alberi Binari di Ricerca Prof. G. M. Farinella
18 Alberi Binari di Ricerca Un albero binario di ricerca è un albero binario con le seguenti caratteristiche: nei suoi nodi sono allocati gli elementi di un insieme T, su cui è definito un ordinamento totale Ovvero per tutti gli elelementi a, b, c di T valgono le seguenti: a a (riflessività) se a b e b a, allora a = b (antisimmetria) se a b e b c allora a c (transitività) a b oppureb a (totalità) se y è un nodo appartenente al sottoalbero sinistro di x, allora key[y] key[x] se y è un nodo appartenente al sottoalbero destro di x, allora key[y] key[x] Tutti gli elementi allocati nel sottoalbero sinistro di x precedono nell ordinamento l elemento allocato in x Tutti gli elementi allocati nel sottoalbero destro di x seguono nell ordinamento l elelemento allocato in x
19 Esempio di albero binario di ricerca
20 Quali operazioni? Ricerca di un elemento Ricerca del Minimo Ricerca del Massimo Ricerca del Successore/Predecessore Inserimento di un elemento Cancellazione di un elemento Bilanciamento (non tratteremo in questo corso)
21 Come avvenire la ricerca di un elemento? Elemento trovato!
22 Non è necessario visitare tutti i nodi, ma solo O(h) Dati in ingresso il puntatore alla radice dell albero e una chiave, l algoritmo restituisce il nodo con chiave uguale a k, oppure NIL se non esiste. Sfruttando la proprietà di ordinamento dell albero binario di ricerca, l algoritmo discende l albero in modo ricorsivo.
23 La ricerca può essere riscritta in forma iterativa
24 x k=18 Key[x]
25 x k=18 Key[x]
26 x k=18 Key[x]
27 x k=18 Key[x]
28 k=18 x Key[x]
29 x k=10 Key[x]
30 x k=10 Key[x]
31 x k=10 Key[x]
32 x k=10 Key[x]
33 x k=10 Key[x]
34 Ricerca del Minimo e del Massimo
35 Ricerca del Minimo e del Massimo Si sfrutta la proprietà dell'albero binario di ricerca. Partendo dal nodo x si ha che: - Se x ha un figlio sinistro, allora il minimo e nel sottoalbero sinistro, poichè per ogni nodo y in esso contenuto vale key[y]<key[x] - Se x non ha un figlio sinistro, allora per ogni nodo y contenuto nel sottoalbero destro vale key[y]>key[x]. Quindi, il minimo e x stesso minimo massimo
36 Ricerca del Minimo e del Massimo Qual è la complessità? La complessità in tempo per la ricerca del minimo e del massimo e pari all'altezza dell'albero, ossia O(h).
37 Ricerca del successore Il successore di un nodo x e definito come il nodo y con la più piccola chiave maggiore di key[x]: succ(key[x]) = min {y ϵ T : key[x] < key[y]} Supponiamo che nell'albero T ci siano solo chiavi distinte Sfruttando le proprietà dell'albero binario di ricerca si può trovare il successore di x senza dover confrontare le chiavi nei nodi
38 Ricerca del successore Se il nodo ha un figlio destro il successore di x è il minimo del sottoalbero destro Se il nodo non ha un figlio destro il successore di x è il più piccolo ascendente di x il cui figlio sinistro è anch'esso un ascendente di x. In pratica: si risale l'albero finchè il nodo di provenienza sta a sinistra. Il nodo di partenza risulta essere il massimo del sottoalbero sinistro di y. Quindi y e il suo successore.
39 Se x ha un figlio destro, e sufficiente cercare il minimo del sottoalbero destro. Esempio 1
40 Se x non ha un figlio destro, si risale l'albero fino a trovare la radice del sottoalbero di cui x e il massimo. Esempio 2 Il tempo necessario per trovare il successore e pari a O(h), dove h è l'altezza dell'albero. Si percorre un cammino non più lungo della distanza massima tra la radice e una foglia.
41 Homework - Predecessore Il predecessore di un nodo x e definito come il nodo y con la più grande chiave minore di key[x]: pred(key[x]) = max {y ϵ T : key[y] < key[x]} Si scriva lo pseudocodice dell algoritmo TREE-PREDECESSOR, il codice python, e si valuti il tempo computazionale
42 Inserimento e Rimozione Inserendo o rimuovendo un elemento la struttura dell'albero cambia L'albero deve mantenere le proprietà di un albero binario di ricerca La struttura dell'albero varia a seconda della sequenza di dati inseriti o rimossi L'inserimento è un'operazione semplice La rimozione è più complessa...ma non impossibile ;-)
43
44 Inserimento di una nuova chiave: Ricerca Posizione + Inserimento della foglia
45 Il tempo necessario e O(h): non più del cammino massimo tra la radice e una foglia
46
47
48
49
50
51
52
53 Servirà bilanciare l albero! (nella prossima lezione)
54 Rimozione Si possono verificare tre casi
55 Se z non ha figli, si modica p[z] in modo che punti non più a z, ma a NIL
56 Se z ha un unico figlio, si taglia fuori z dall'albero, facendo puntare p[z] all'unico figlio di z
57 Se z ha due figli, si individua il suo successore, ossia il minimo del suo sottoalbero destro. Quindi y prende il posto di z, e i dati in y vengono copiati nella posizione di z.
58 Se z ha due figli, si individua il suo successore, ossia il minimo del suo sottoalbero destro. Quindi y prende il posto di z, e i dati in y vengono copiati nella posizione di z.
59
60 Rimozione - considerazioni Se siamo nel caso 1 oppure 2 l'operazione di rimozione e immediata Se siamo nel caso 3 e necessario eseguire la procedura TREE -SUCCESSOR(z), che ha una complessità temporale O(h) Quindi la rimozione richiede tempo O(h)
61 Riepilogo L albero binario di ricerca è una struttura dati ispirata alla ricerca Le chiavi dei nodi del sottoalbero sinistro left[x] sono key[x] Le chiavi dei nodi del sottoalbero destro right[x] sono key[x] Operazioni: ricerca, minimo, massimo, prev, next, inserimento, e cancellazione Complessità Ricerca, Inserimento, Cancellazione sono O(h) per un albero di altezza h Un albero binario di ricerca con n nodi generato in maniera casuale ha un altezza O(log 2 n)
Alberi binari di ricerca
Alberi binari di ricerca Ilaria Castelli [email protected] Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/20010 I. Castelli Alberi binari di ricerca, A.A. 2009/20010
Alberi binari. Ilaria Castelli [email protected] A.A. 2009/2010. Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione
Alberi binari Ilaria Castelli [email protected] Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/2010 I. Castelli Alberi binari, A.A. 2009/2010 1/20 Alberi binari
Alberi binari di ricerca
Alberi binari di ricerca Definizione Visita dell albero inorder Ricerca Ricerca minimo, massimo e successore. Inserimento ed eliminazione di un nodo Problema del bilanciamento dell albero Albero binario
Esercitazione 6. Alberi binari di ricerca
Esercitazione 6 Alberi binari di ricerca Struttura base Rappresentabile attraverso una struttura dati concatenata in cui ogni nodo è un oggetto di tipo struttura Ogni nodo contiene: campo chiave (key)
Algoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet http://www.sci.unich.it/ francesc
Algoritmi e Strutture di Dati I 1 Algoritmi e Strutture di Dati I Massimo Franceschet http://www.sci.unich.it/ francesc Algoritmi e Strutture di Dati I 2 Grafo Un grafo G è una coppia (V, E) ove V è un
Alberi binari e alberi binari di ricerca
Alberi binari e alberi binari di ricerca Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
LE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve
LE STRUTTURE DATI DINAMICHE: GLI ALBERI Cosimo Laneve 1 argomenti 1. definizione di alberi e nozioni relative 2. implementazione degli alberi, creazione, visita 3. algoritmo di visita iterativa e sua implementazione
Algoritmi e Strutture Dati. HeapSort
Algoritmi e Strutture Dati HeapSort Selection Sort: intuizioni L algoritmo Selection-Sort scandisce tutti gli elementi dell array a partire dall ultimo elemento fino all inizio e ad ogni iterazione: Viene
alberi binari di ricerca (BST)
Le tabelle di simboli e gli alberi binari di ricerca (BT) ianpiero abodi e Paolo amurati Dip. utomatica e Informatica Politecnico di Torino Tabelle di simboli Definizione: una tabella di simboli è una
Algoritmi e Strutture Dati
Alberi Binari di Ricerca (BST) Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Alberi Binari di Ricerca (Binary Search Trees BST)
Alberi ed Alberi Binari
Alberi ed Alberi Binari Il tipo di dato Albero Un albero è una struttura di data organizzata gerarchicamente. È costituito da un insieme di nodi collegati tra di loro: ogni nodo contiene dell informazione,
Heap e code di priorità
Heap e code di priorità Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010
Note per la Lezione 4 Ugo Vaccaro
Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 4 Ugo Vaccaro Ripasso di nozioni su Alberi Ricordiamo che gli alberi rappresentano una generalizzazione delle liste, nel senso che
Alberto Montresor Università di Trento
!! Algoritmi e Strutture Dati! Capitolo 5 - Alberi!!! Alberto Montresor Università di Trento!! This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy
alberi binari e ricorsione
alberi binari e ricorsione un albero binario: ogni nodo ha al più 2 figli ogni figlio è destro o sinistro figlio sinistro nodo interno radice figlio destro foglia cammini = sequenze di nodi = sequenze
Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni.
Il tipo astratto coda con priorità: specifiche sintattiche e semantiche. Realizzazioni. Algoritmi e Strutture Dati + Lab A.A. 14/15 Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro
Esercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla [email protected] Ultimo aggiornamento: 29 novembre 2010 1 Rotazioni semplici in ABR Si consideri l operazione di rotazione semplice applicata
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 5 - Alberi Alberto Montresor Università di Trento This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy of this
Esercitazioni di Algoritmi e Strutture Dati
Esercitazioni di Algoritmi e Strutture Dati III esercitazione, 17/03/2016 Tong Liu 1 ESERCIZIO PRECEDENTE Es 2.5, Il rango di un elemento di una lista di interi é la somma degli elementi successivi piú
Alberi. Gli alberi sono una generalizzazione delle liste che consente di modellare delle strutture gerarchiche come questa: Largo. Fosco.
Alberi Alberi Gli alberi sono una generalizzazione delle liste che consente di modellare delle strutture gerarchiche come questa: Largo Fosco Dora Drogo Frodo Dudo Daisy Alberi Gli alberi sono una generalizzazione
Alberi e alberi binari I Un albero è un caso particolare di grafo
Alberi e alberi binari Un albero è un caso particolare di grafo È costituito da un insieme di nodi collegati tra di loro mediante archi Gli archi sono orientati (ogni arco esce da un nodo origine ed entra
Esercizi Capitolo 6 - Alberi binari di ricerca
Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 9 Agosto, 204 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile
Alberi Bilanciati di Ricerca
Alberi Bilanciati di Ricerca Damiano Macedonio Uniersità Ca' Foscari di Venezia [email protected] Copyright 2009, 2010 Moreno Marzolla, Uniersità di Bologna (http://www.moreno.marzolla.name/teaching/asd2010/)
Per semplicità eliminiamo le ripetizioni nell'albero.
Albero binario di ricerca 20 40 100 95 Un albero binario di ricerca é un albero binario in cui ogni nodo ha un etichetta minore o uguale a quelle dei nodi nel sottoalbero radicato nel figlio destro e maggiore
Strutture di accesso ai dati: B + -tree
Strutture di accesso ai dati: B + -tree A L B E R T O B E L U S S I S E C O N D A P A R T E A N N O A C C A D E M I C O 2 0 0 9-2 0 0 Osservazione Quando l indice aumenta di dimensioni, non può risiedere
lezione 9 min-heap binario Heap e Alberi posizionali generali
lezione 9 Heap e Alberi posizionali generali min-heap binario Un min-heap è un albero binario quasi completo in cui ogni nodo i diverso dalla radice soddisfa la seguente proprietà: il valore memorizzato
Esercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla [email protected] Ultimo aggiornamento: 3 novembre 2010 1 Trova la somma/1 Scrivere un algoritmo che dati in input un array A[1... n] di n interi
Alberi auto-aggiustanti
Alberi auto-aggiustanti Dispensa didattica per il corso di Algoritmi e Strutture Dati a.a. 2007/2008 ver. 1.3 Ing. Claudio Mazzariello, Prof. Carlo Sansone 27 Maggio 2008 A differenza di altre possibili
ADT Coda con priorità
Code con priorità ADT Coda con priorità Una coda con priorità è una struttura dati dinamica che permette di gestire una collezione di dati con chiave numerica. Una coda con priorità offre le operazioni
Dati e Algoritmi I (Pietracaprina) Esercizi sugli Alberi
Dati e Algoritmi I (Pietracaprina) Esercizi sugli Alberi Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1 Dimostrare che un albero non vuoto con n nodi interni, dove ogni nodo interno ha almeno
TRIE (albero digitale di ricerca)
TRIE (albero digitale di ricerca) Struttura dati impiegata per memorizzare un insieme S di n stringhe (il vocabolario V). Tabelle hash le operazioni di dizionario hanno costo O(m) al caso medio per una
Algoritmi e strutture dati
Algoritmi e strutture dati Roberto Cordone A. A. 2015-16 Capitolo 4 Implementazioni delle partizioni Nota: queste dispense sono un rapido riassunto delle lezioni svolte nel dicembre 2015 e gennaio 2016.
Algoritmi (9 CFU) (A.A ) Heap e Algoritmo HeapSort. Prof. V. Cutello Algoritmi 1
Algoritmi (9 CFU) (A.A. 2009-10) Heap e Algoritmo HeapSort. Prof. V. Cutello Algoritmi 1 Overview Definiamo la struttura dati heap Operazioni di costruzione e gestione di un heap Algoritmo Heapsort Code
Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 12 Array e Oggetti A. Miola Dicembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Array e Oggetti 1 Contenuti Array paralleli
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,
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
Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione
Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione Esercizi II parte Esercizio 1 Discutere la correttezza di ciascuna delle seguenti affermazioni. Dimostrare formalmente la validità
Alberi binari. Esercizi su alberi binari
Alberi binari Definizione della struttura dati: struct tree int dato; struct tree *sx, *dx; ; typedef struct tree tree; Esercizi su alberi binari 1. Scrivere una funzione che cerchi un intero k all'interno
Grafi: visite. Una breve presentazione. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)
Grafi: visite Una breve presentazione Visite di grafi Scopo e tipi di visita Una visita (o attraversamento) di un grafo G permette di esaminare i nodi e gli archi di G in modo sistematico Problema di base
Laboratorio di Algoritmi e Strutture Dati II Semestre 2005/2006. Riassunto sui dizionari
Laboratorio di Algoritmi e Strutture Dati II Semestre 2005/2006 Alberi di Ricerca Bilanciati Marco Antoniotti Riassunto sui dizionari Dizionario: astrazione di collezioni Operazioni fondamentali
Problemi, istanze, soluzioni
lgoritmi e Strutture di Dati II 2 Problemi, istanze, soluzioni Un problema specifica una relazione matematica tra dati di ingresso e dati di uscita. Una istanza di un problema è formata dai dati di un
INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso
INDICI PER FILE Strutture ausiliarie di accesso 2 Accesso secondario Diamo per scontato che esista già un file con una certa organizzazione primaria con dati non ordinati, ordinati o organizzati secondo
I B+ Alberi. Sommario
I B+ Alberi R. Basili (Basi di Dati, a.a. 2002-3) Sommario Indici organizzati secondo B + -alberi Motivazioni ed Esempio Definizione Ricerca in un B + -albero Esempio Vantaggi Inserimento/Cancellazione
Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione
Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica (IN0 Fondamenti) Grafi e alberi: introduzione Marco Liverani ([email protected])
Progettazione di Algoritmi
Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 29/01/2016 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via
5. Strutture di indici per file
5. Strutture di indici per file I file hanno un'organizzazione primaria, ossia possono essere organizzati su disco in maniera ordinata, non ordinata, oppure a hash. Per velocizzare le operazioni di reperimento
Esercizi Capitolo 6 - Alberi binari di ricerca
Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 23 settembre 200 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile
Progettazione di algoritmi
Progettazione di algoritmi Discussione dell'esercizio [labirinto] Nel testo dell'esercizio abbiamo considerato come lunghezza del percorso il numero di bivi ma possiamo stimare meglio la lunghezza reale
Minimo albero di copertura
apitolo 0 Minimo albero di copertura efinizione 0.. ato un grafo G = (V, E) non orientato e connesso, un albero di copertura di G è un sottoinsieme T E tale che il sottografo (V, T ) è un albero libero.
Ordinamenti per confronto: albero di decisione
Ordinamenti per confronto: albero di decisione Albero di decisione = rappresentazione grafica di tutte le possibili sequenze di confronti eseguite da un algoritmo assegnato di ordinamento per confronto
Grafi: visita generica
.. Grafi: visita generica Una presentazione alternativa (con ulteriori dettagli) Algoritmi di visita Scopo: visitare tutti i vertici di un grafo (si osservi che per poter visitare un vertice occorre prima
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 12 Grafi e visite di grafi Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Definizione Un grafo G=(V,E) consiste in: - un insieme V di vertici (o nodi) - un insieme
Strutture dati dinamiche in C (II)
Strutture dati dinamiche in C (II) Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 dott.ssa Francesca A. Lisi [email protected] Sommario Le liste concatenate (ancora ma in modo più formale) L
RETI DI CALCOLATORI II
RETI DI CALCOLATORI II Facoltà di Ingegneria Università degli Studi di Udine Ing. DANIELE DE CANEVA a.a. 2009/2010 ARGOMENTI DELLA LEZIONE TEORIA DEL ROUTING ROUTING STATICO ROUTING DINAMICO o PROTOCOLLI
Laboratorio di Algoritmi e Strutture Dati. Aniello Murano. people.na.infn.it/~murano/ Murano Aniello - Lab. di ASD Terza Lezione
Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ Heap e Heapsort Algoritmi di ordinamento Insertion Sort Quicksort Heapsort Insertion Sort L
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
Verificare se un albero binario è bilanciato
Verificare se un albero binario è bilanciato Definizione: Un albero è bilanciato nel Numero dei Nodi, brevemente n- bilanciato, quando, per ogni sottoalbero t radicato in un suo nodo, il numero dei nodi
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 8 Code con priorità: Heap binomiali Riepilogo Array non ord. Array ordinato Lista non ordinata Lista ordinata Find Min Insert Delete DelMin Incr. Key Decr. Key merge
La codifica di sorgente
Tecn_prog_sist_inform Gerboni Roberta è la rappresentazione efficiente dei dati generati da una sorgente discreta al fine poi di trasmetterli su di un opportuno canale privo di rumore. La codifica di canale
Grammatiche. Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione
Grammatiche Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione Esempio dei numeri interi Si consideri il linguaggio
Esercizi proposti 10
Esercizi proposti 10 In questo gruppo di esercizi assumiamo, dove non sia specificato diversamente, di rappresentare i grafi mediante liste di archi, con il tipo di dati così dichiarato: type a graph =
Progettazione di Algoritmi
Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 0/06/06 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via avrai
Costo di esecuzione e complessità. Modello di costo e complessità di un algoritmo
Costo di esecuzione e complessità Modello di costo e complessità di un algoritmo Il costo di esecuzione di un algoritmo quantifica le risorse necessarie per l esecuzione dell algoritmo stesso numero di
Dati e Algoritmi 1: A. Pietracaprina. Grafi (II parte)
Dati e Algoritmi 1: A. Pietracaprina Grafi (II parte) 1 Breath-First Search (algoritmo iterativo) Si assume una rappresentazione tramite liste di adiacenza. L ordine con cui si visitano i vicini di un
Suffix Tree & Suffix Array
Suffix Tree & Suffix Array Corso Bioinformatica Francesca Marzi String matching esatto Data una stringa T (chiamata testo) e una stringa P (chiamata pattern), trovare tutte le occorrenze di P in T. Di
La codifica digitale
La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere compresa e rielaborata dal calcolatore
Esercizi per il corso di Algoritmi e Strutture Dati
1 Esercizi per il corso di Algoritmi e Strutture Dati Esercizi sulla Tecnica Divide et Impera N.B. Tutti gli algoritmi vanno scritti in pseudocodice (non in Java, né in C++, etc. ). Di tutti gli algoritmi
Dipartimento di Elettronica, Informazione e Bioingegneria API 2013/4
Dipartimento di Elettronica, Informazione e Bioingegneria API 2013/4 Alberi @ G. Gini 2013 Alberi Alberi binari Rappresentazioni Proprietà Alberi n-ari attraversamento Alberi binari di ricerca Bilanciamento
Problema dell albero di cammini minimi (SPT, Shortest Path Tree) o problema dei cammini minimi :
Per almeno una delle soluzioni ottime { P i, i r } del problema generalizzato, l unione dei cammini P i forma un albero di copertura per G radicato in r e orientato, ossia un albero la cui radice è r i
I Tipi di Dato Astratto
I Tipi di Dato Astratto Sommario Cosa sono le Strutture Dati Astratte? Le strutture dati Le operazioni Come scegliere fra varie implementazioni? Quale è la questione? Come organizzare (strutturare) i dati
Algoritmi e Strutture dati a.a. 2012/2013
a.a. 2012/2013 Dr Informazioni docente E-mail docente: [email protected] Ricevimento: Su appuntamento (inviare e-mail) 2 Informazioni lezioni Lunedì, Martedì, Mercoledì 10:30-13:30 aula INFO2 15
Alberi di copertura. Mauro Passacantando. Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa
Alberi di copertura Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo, Pisa [email protected] M. Passacantando TFA 0/ - Corso di Ricerca Operativa Università di Pisa / 9 Definizioni
Algoritmo basato su cancellazione di cicli
Algoritmo basato su cancellazione di cicli Dato un flusso ammissibile iniziale, si costruisce una sequenza di flussi ammissibili di costo decrescente. Ciascun flusso è ottenuto dal precedente flusso ammissibile
