Laboratorio di Python
|
|
- Giuliana Corso
- 6 anni fa
- Visualizzazioni
Transcript
1 , Esercizi su alberi Università di Bologna 16 maggio 2013
2 Sommario 1 2
3 Consegna non avvenuta Meno di 10 studenti hanno inviato l esercizio svolto.
4 Definizione ricorsiva alberi binari Un albero binario è un insieme finito di nodi. Un albero binario è: un insieme vuoto di nodi un nodo radice con due alberi binari disgiunti detti sotto-albero sinistro e sotto-albero destro
5 Definizioni radice è il nodo dell albero che non ha nessun arco entrante padre è il nodo che ha almeno un arco uscente figlio è un nodo che ha un arco entrante foglia è il nodo senza archi uscenti altezza di un nodo : distanza del nodo dalla radice dell albero (la radice ha livello 0)
6 Rappresentiamo un albero Per rappresentare un albero: usiamo una struttura dati ricorsiva (sequenze mutabili) [1, [], []]: ad esempio usiamo una lista annidata, dove ogni sotto-lista rappresenta un sotto-albero.
7 Albero binario Un albero si dice binario se ha al più due figli per ogni nodo. Nella nostra rappresentazione avrà la seguente forma: [x, [y, [], []], [z, [k, [], []], []]]
8 Alcune funzioni Data la nostra rappresentazione di albero binario, implementiamo le seguenti funzioni, per creare la nostra struttura di dato astratto. Una funzione che restituisca l albero vuoto (empty) Una funzione che dato un albero restituisca vero se e soltanto se l albero vuoto (is_empty) Una funzione che dato un albero che restituisca il figlio sinistro. (fist_child) Una funzione che dato un albero che restituisca il figlio destro. (second_child) Una funzione che dato un albero restituisca l etichetta della radice (label) Una funzione che dati tre parametri a, f, s restituisca l albero che abbia a come l etichetta della radice, f come figlio sinistro e s come figlio destro (bin)
9 Funzioni def empty(): a=[] return(a) def is_empty(a): return (a == []) def first_child(a): if not (is_empty(a)): f=a[1] return(f) else: return None
10 Funzioni def second_child(a): if not is_empty(a): s=a[2] return(s) else: return None def label(a): if not is_empty(a): return a[0] else: return None def bin(a,f,s): x=[] x.append(a) x.append(f) x.append(s) return (x)
11 Esercizio 1 Utilizzando solo le funzioni definite precedentemente, (empty, is_empty, fist_child, second_child, label, bin) si scriva una funzione Python sost(alb,et,c) che restituisce l albero che si ottiene da alb sostituendo ogni foglia etichettata et l albero c. Si ricordi che una foglia è un nodo con entrambi i figli vuoti; si può assumere che il primo e il terzo argomento siano alberi ben formati.
12 Soluzione def isleaf(a): if not is_empty(a): return(is_empty (first_child(a)) and is_empty (second_child(a))) else: return is_empty(a) def sost(a, et, c): if is_empty(a): return (a) if isleaf(a) and label(a)==et: return(c) return (bin(label (a), sost(first_child(a),et, c), sost(second_child(a),et, c)))
13 Testiamo la funzione x=[0,[3,[6,[],[]],[6,[],[6,[],[]]]],[5,[],[]]] c=[99,[1,[],[]],[78,[],[]]] r=sost(x,6,c) print(r)
14 Esercizio 2 Utilizzando solo le funzioni definite precedentemente, (empty, is_empty, fist_child, second_child, label, bin) si scriva una funzione Python sost2(alb,et,et1) che restituisce l albero che si ottiene da alb sostituendo ogni foglia etichettata et l etichetta et1. Si ricordi che una foglia è un nodo con entrambi i figli vuoti; si può assumere che il primo sia un albero ben formato.
15 Soluzione def isleaf(a): if not is_empty(a): return(is_empty (first_child(a)) and is_empty (second_child(a))) else: return is_empty(a) def sost2(a, et, et1): if is_empty(a): return (a) if isleaf(a) and label(a)==et: a=bin(et1,empty(),empty()) return(a) return (bin(label (a), sost(first_child(a),et, et1), sost(second_child(a),et, et1)))
16 Testiamo la funzione x=[0,[3,[6,[],[]],[6,[],[6,[],[]]]],[5,[],[]]] r=sost(x,6,4) print(r)
17 Esercizio 3 Utilizzando solo le funzioni definite precedentemente, (empty, is_empty, fist_child, second_child, label, bin) In un albero, l?altezza di un nodo è la lunghezza dell?unico cammino che congiunge u alla radice. Per esempio, bin(2,bin(3,empty(),empty()),bin(4,empty(),empty())) ha zero nodi di altezza 2, due nodi di altezza 1 e un solo nodo di altezza 0 (la radice). Manipolando alberi solo con le funzioni assegnate, si scriva una funzione Python maxalt(a) che dato un albero a restituisca la coppia (v,h), dove v è il valore con cui è etichettato uno dei nodi a massima altezza e h è tale altezza. Se l?albero è vuoto, maxalt restituisce ( 1, 1).
18 Soluzione def maxalt(a): if is_empty(a): return (-1,-1) mh_s=maxalt(first_child(a)) mh_d=maxalt(second_child(a)) if mh_s[1]==mh_d[1]==-1: #entrambi figli vuoti return (label(a),0) if mh_s[1]>mh_d[1]: return (mh_s[0],mh_s[1]+1) else: return (mh_d[0],mh_d[1]+1)
19 Testiamo la funzione x=[0,[3,[6,[],[]],[6,[],[6,[],[]]]],[5,[],[]]] r=maxalt(x) print(r)
20 Cosa abbiamo fatto? 1 2
Alberi. Alberi: definizioni. Alberi Binari. Esercizi su alberi binari: metodi ricorsivi. Struttura dati per alberi generici. ASD-L - Luca Tesei
Alberi Alberi: definizioni Alberi Binari Esercizi su alberi binari: metodi ricorsivi Struttura dati per alberi generici 1 Alberi Gli alberi sono strutture dati naturalmente ricorsive Un albero è un particolare
DettagliAlberi 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
DettagliEspressioni aritmetiche
Espressioni aritmetiche Consideriamo espressioni costruite a partire da variabili e costanti intere mediante applicazione delle operazioni di somma, sottrazione, prodotto e divisione (intera). Ad esempio:
DettagliAlgoritmi 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
DettagliAlberi 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,
DettagliUniversità degli Studi di L Aquila Facoltà di Scienze M.F.N. Corso di Laurea in Informatica. Modulo di Laboratorio di Algoritmi e Strutture Dati
Università degli Studi di L Aquila Facoltà di Scienze M.F.N. Corso di Laurea in Informatica Modulo di Laboratorio di Algoritmi e Strutture Dati Alberi binari Giovanna Melideo melideo@di.univaq.it 1 Alberi
DettagliInformatica 3. Informatica 3. LEZIONE 14: Alberi binari: introduzione. Lezione 14 - Modulo 1. Definizioni. Introduzione. Definizioni e proprietà
Informatica 3 Informatica 3 LEZIONE 14: Alberi binari: introduzione Lezione 14 - Modulo 1 Modulo 1: Definizioni e proprietà Modulo 2: Attraversamento degli alberi binari Definizioni e proprietà Politecnico
DettagliAlberi. Definizioni principali
Definizioni principali Un albero è una struttura dati che contiene oggetti organizzati gerarchicamente (a differenza della lista di nodi, dell'array list, i cui elementi sono organizzati linearmente) radice
DettagliNote 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
DettagliAlgoritmi e Strutture Dati
Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Il concetto di dato Il concetto di tipo di dato Insertion Sort for j 2 to lenght[a]
DettagliEsercizi su alberi binari
Esercizi su alberi binari Esercizi svolti: Determinazione nodi contenti verifica completezza verifica quasi completezza lunghezza del cammino interno determinazione ultima foglia in un quasi completo verifica
DettagliAlberi Binari di Ricerca
Alberi Binari di Ricerca Prof. G. M. Farinella gfarinella@dmi.unict.it www.dmi.unict.it/farinella Riferimenti Bibliografici Cormen T.H., Leiserson C.E., Rivest R.L Introduction to Algorithms, Third Edition,
Dettaglialberi 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
Dettagli23/10/2016. gli alberi. alcune definizioni. un esempio. LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica.
gli alberi Un albero è una struttura dati NON LINEARE organizzata gerarchicamente. LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica È costituito da un insieme di nodi collegati tra di loro:
DettagliAlberi binari (radicati e ordinati) della radice Il padre del nodo 5 e del nodo 3
Alberi binari (radicati e ordinati) Il figlio sinistro della radice Il padre del nodo 5 e del nodo 3 4 3 Il figlio sinistro del nodo 2 2 5 1 6 7 8 9 La radice Il figlio destro della radice una foglia Figlio
DettagliOrganigramma Gerarchia. (Tree) Nessuna persona può avere più di un superiore Ogni persona può essere superiore di altre
Alberi Struttura dati Albero Organigramma Gerarchia (Tree) Nessuna persona può avere più di un superiore Ogni persona può essere superiore di altre Esempio di un organigramma di un azienda Tree terminology
DettagliEsercizio 1. E vero che in un AVL il minimo si trova in una foglia o nel penultimo livello? FB = -1. livello 0 FB = -1. livello 1 FB = -1.
Esercizio 1 E vero che in un AVL il minimo si trova in una foglia o nel penultimo livello? FB = -1 livello 0 FB = -1 FB = -1 livello 1 FB = -1 livello 2 livello 3 L altezza è 3, il minimo si trova nel
DettagliTipi di dato e Strutture dati elementari
Tipi di dato e Strutture dati elementari Ing. Paolo Craca Anno accademico 2007/2008 Tipi di dato e Strutture dati elementari 1 / 40 Cosa vedremo in questo seminario 1 Introduzione 2 Pile 3 Code 4 5 Bibliografia
DettagliAlberi. 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
DettagliAlberi 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
DettagliALGORITMI E STRUTTURE DATI
ALGORITMI E STRUTTURE DATI Esercitazioni AndreA Orlandini http://www.dia.uniroma3.it/~orlandin/asd/ e-mail: orlandin@dia.uniroma3.it Orario di ricevimento: Martedì 14.00-16.00 Puntatori e Alberi, ABR StudentiDIA
DettagliPer 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
DettagliGrammatiche. 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
DettagliLezione 5. Giuditta Franco. 19 Febbraio 2008
Outline Lezione 5 Dipartimento di Informatica, Università di Verona 19 Febbraio 2008 Talk Outline Outline 1. 2. 3. Come costruire un Un esempio introduttivo L albero dei suffissi di una data stringa è
DettagliAlberi. 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 Dudo Frodo Daisy Alberi Gli alberi sono una generalizzazione
DettagliIl 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
DettagliLE 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
DettagliLezione 12 Tabelle Hash
Lezione 12 Tabelle Hash Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 2 ABR: Visita Scrivere un programma che legga
Dettaglialberi tipo astratto, implementazione, algoritmi
alberi tipo astratto, implementazione, algoritmi argomenti tipo astratto albero definizione implementazione in Java algoritmi di visita alberi binari implementazione di alberi binari in Java ASD - Alberi
DettagliAlberi Binari di Ricerca
Alberi Binari di Ricerca Algoritmi su gli alberi binari: visite Dato un puntatore alla radice di un albero vogliamo scandire in modo sistematico tutti i nodi di tale albero In una lista abbiamo una unica
Dettaglialberi completamente sbilanciati
alberi completamente sbilanciati Il numero dei nodi al livello i è 1, per 0 i altezza L altezza h di un albero completamente sbilanciato con n nodi è h = n-1 1 Un albero completamente bilanciato o pieno
DettagliInformatica 3. Informatica 3. LEZIONE 17: Alberi generici. Lezione 17 - Modulo 1. Introduzione. ADT dell albero generico.
Informatica 3 Informatica 3 LEZIONE 17: lberi generici Lezione 17 - Modulo 1 Modulo 1: Definizione e DT Modulo 2: Implementazione Modulo 3: lberi e classi di equivalenza Definizione e DT Politecnico di
DettagliAppunti 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 (liverani@mat.uniroma.it)
DettagliGLI ALBERI BINARI DI RICERCA. Cosimo Laneve
GLI ALBERI BINARI DI RICERCA Cosimo Laneve argomenti 1. alberi binari di ricerca 2. la ricerca di elementi e la complessità computazionale 3. operazione di cancellazione di elementi 4. esempi/esercizi
DettagliADT Dizionario. Ordered search table. Supponiamo che sia definita una relazione d'ordine totale sulle chiavi del dizionario D:
Ordered search table Supponiamo che sia definita una relazione d'ordine totale sulle chiavi del dizionario D: possiamo memorizzare le entrate di D in un array list S in ordine non decrescente di chiavi:
DettagliUn albero completamente bilanciato o pieno (full) alberi completamente sbilanciati. Un albero binario completo
alberi completamente sbilanciati Un albero completamente bilanciato o pieno (full) Definizione: Un albero è pieno se tutte le foglie sono sullo stesso livello e ogni nodo non foglia ha due figli. Il numero
DettagliIn questa lezione Alberi binari di ricerca: la cancellazione
In questa leione Alberi binari di ricerca: la cancellaione 1 L algoritmo di Hibbard per cancellare (1962) Sia il nodo da cancellare: 1) è una foglia: si rimuove 2) ha un solo figlio x: si rende x figlio
DettagliHeap 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
DettagliAlberi binari di ricerca
Alberi binari di ricerca Ilaria Castelli castelli@dii.unisi.it Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/20010 I. Castelli Alberi binari di ricerca, A.A. 2009/20010
DettagliAlberi binari. Ilaria Castelli castelli@dii.unisi.it A.A. 2009/2010. Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione
Alberi binari Ilaria Castelli castelli@dii.unisi.it 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
DettagliAlberi ( GT. 7 ) In informatica, un albero è un modello astratto con cui viene rappresentata una struttura gerarchica
Alberi ( GT. 7 ) Albero definizioni Albero ADT (Abstract Data Type) Algoritmi di base su alberi Alberi binari Strutture dati per rappresentare alberi Implementazione AlberoBinario 1 Alberi (GT. 7) In informatica,
DettagliLaboratorio di Algoritmi e Strutture Dati
Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Alberi binari di ricerca 2 1 Alberi L albero è un tipo astratto di dato utilizzato per rappresentare
DettagliAlberto 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
DettagliLinguaggi e Grammatiche Liberi da Contesto
N.Fanizzi-V.Carofiglio Dipartimento di Informatica Università degli Studi di Bari 22 aprile 2016 1 Linguaggi Liberi da Contesto 2 Grammatiche e Linguaggi Liberi da Contesto G = (X, V, S, P) è una grammatica
Dettaglilezione 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
DettagliAlgoritmi 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
DettagliQuesta 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
DettagliDati 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
DettagliAlgoritmi 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
DettagliADT 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
DettagliEsercizi 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
DettagliCapitolo 3: Gli alberi. Alberi n-ari
Alberi n-ari Un albero ordinato è formato da un insieme finito di elementi, detti nodi. Se questo insieme non è vuoto, allora un particolare nodo avrà il ruolo di radice dell albero e gli altri nodi, se
DettagliLinguaggi di Programmazione Corso C. Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali. Nicola Fanizzi
Linguaggi di Programmazione Corso C Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali Nicola Fanizzi (fanizzi@di.uniba.it) Dipartimento di Informatica Università degli Studi di Bari Grammatiche
DettagliUnion-find. Insiemi disgiunti. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)
Union-find Insiemi disgiunti Il problema Union-find Mantenere una collezione di insiemi disgiunti di elementi distinti (interi in 1 n) durante una sequenza delle seguenti operazioni: union(a,b) = unisce
DettagliEsercitazione 3. Heapsort
Esercitazione Heapsort Heapsort Algoritmo di ordinamento che utilizza una struttura dati detta heap per la gestione delle informazioni Tempo di esecuzione O(n lg n) Heap (binario) = struttura dati composta
DettagliIntroduzione ai grafi. Introduzione ai grafi p. 1/2
Introduzione ai grafi Introduzione ai grafi p. 1/2 Grafi Un grafo G é costituito da una coppia di insiemi (V,A) dove V é detto insieme dei nodi e A é detto insieme di archi ed é un sottinsieme di tutte
DettagliIntroduzione alla gestione delle collezioni di oggetti
Introduzione alla gestione delle collezioni di oggetti Alcune tecniche di base Un esempio: l ADT Dizionario (mutabile) Un esempio: l ADT Pila (mutabile) Un esempio: l ADT Coda (mutabile) Tecniche di rappresentazione
DettagliAlberi. Se x è il genitore di y, allora y è un figlio di x. Un albero binario è un albero in cui ogni nodo ha al massimo due figli.
Alberi Un albero è un insieme di oggetti, chiamati nodi, su cui è definita una relazione binaria G(x, y) che leggiamo x è genitore di y tale che: 1. esiste un unico nodo, chiamato radice, che non ha genitori;
DettagliAlberi di ricerca. Alberi binari di ricerca. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)
Alberi di ricerca Alberi binari di ricerca Un esempio: l ADT Dizionario (mutabile) Gli alberi di ricerca sono usati per realizzare in modo efficiente il tipo di dato astratto dizionario Alberi binari di
DettagliStruttura di dati che può essere usata sia come dizionario, sia come coda con priorità
Albero binario di ricerca Struttura di dati che può essere usata sia come dizionario, sia come coda con priorità Proprietà: sia x un nodo di un (sotto)albero binario di ricerca Se y è un nodo del sottoalbero
DettagliALBERI : introduzione SOMMARIO ALBERI ALBERI. ALBERI: introduzione ALBERI BINARI: introduzione VISITE RICORSIVE DI ALBERI
SOMMARIO ALBERI: introduzione ALBERI BINARI: introduzione VISITE RICORSIVE DI ALBERI Dimensione e Altezza ALBERI BINARI DI RICERCA (BST) Introduzione Ricerca, inserimento e cancellazione Implementazione
DettagliStrutture 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 lisi@di.uniba.it Sommario Le liste concatenate (ancora ma in modo più formale) L
DettagliProgrammazione logica e PROLOG. Esercitazione 1. AI - Carlucci Aiello & Nardi, 2007 Esercitazione 1 0
Programmazione logica e PROLOG Esercitazione 1 AI - Carlucci Aiello & Nardi, 2007 Esercitazione 1 0 Sommario Programmazione logica Base delle conoscenze Interrogazioni Regole Ricorsive Esecuzione dei programmi
DettagliVerificare 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
DettagliEsercitazione 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)
DettagliEsercitazione. Ricorsione. May 31, Esercizi presi dal libro di Rosen
Esercitazione Ricorsione May 31, 2016 Esercizi presi dal libro di Rosen Problema 2 a) sezione 5.3 Data la seguente funzione definita ricorsivamente come: f(n+1) = 2f(n) f(0) = 3 Determinare il valore di
DettagliGRAFI. Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi!
G R A F I 1 GRAFI Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi! 2 cip: cip: Pallogrammi Pallogrammi GRAFI: cosa sono I grafi sono una struttura matematica fondamentale: servono
DettagliAlgoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014
Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014 Nome..Cognome.Matr. Laureando Avvisi importanti Il tempo a disposizione è di 1 ora e 30 minuti. Se non verranno risolti
DettagliSTRUTTURE NON LINEARI
PR1 Lezione 13: STRUTTURE NON LINEARI Michele Nappi mnappi@unisa.it www.dmi.unisa.it/people/nappi Per la realizzazione della presentazione è stato utilizzato in parte materiale didattico prodotto da Oronzo
DettagliUn esempio: l ADT Dizionario (mutabile) Definizione. Alberi binari di ricerca (BST = binary search tree) search(chiave k) -> elem
Un esempio: l ADT Dizionario (mutabile) Algoritmi e Laboratorio a.a. 2006-07 Lezioni Gli alberi di ricerca sono usati per realizzare in modo efficiente il tipo di dato astratto dizionario Parte 19-D Alberi
DettagliImplementazione ADT: Alberi
Implementazione ADT: Alberi Livelli di astrazione 2001/2002 1 Esercitazione 5 (E6): alberi (tree) albero struttura dati fondamentale, soprattutto per le operazioni di ricerca tipi di albero con radice
DettagliEsercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it 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
DettagliEsercitazioni 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ú
DettagliAlgoritmi 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
DettagliIntroduzione. Heap-binomiali: un heap binomiale è un insieme di alberi binomiali.
Heap binomiali 1 Introduzione Heap-binomiali: un heap binomiale è un insieme di alberi binomiali. Alberi-binomiali: un albero binomiale è un albero ordinato definito ricorsivamente. 2 Proprietà degli alberi
DettagliEsercizi 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
DettagliRISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine
RISOLUZIONE IN LOGICA PROPOSIZIONALE Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine 1. Risoluzione Definitione 1.1. Un letterale l è una variabile proposizionale (letterale
DettagliLaboratorio 07. Programmazione - CdS Matematica. Michele Donini 10 dicembre 2015
Laboratorio 07 Programmazione - CdS Matematica Michele Donini 10 dicembre 2015 Esercizio Lista I Costruire la classe lista concatenata: class Lista(): def init (self, val=none, succ=none): Denire le principali
DettagliAlgoritmo 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
DettagliLaboratorio di Python
Problem solving, Ricorsione, Università di Bologna 13 e 15 marzo 2013 Sommario 1 2 3 4 Errore di semantica Esercizio def vocali(s): voc='' for c in s: if c in 'aeiou': voc=voc+c return voc Cerchiamo di
DettagliIn questa lezione. Heapsort. ordinamento con complessità, nel caso peggiore, O(nlogn) [CLRS01] cap. 6 da pag. 106 a pag. 114
In questa lezione Heapsort ordinamento con complessità, nel caso peggiore, O(nlogn) [CLRS01] cap. 6 da pag. 106 a pag. 11 1 Paternità L heapsort è stato pubblicato da J. W. J. Williams nel 106. Pochi mesi
DettagliCompressione Dati. Teorema codifica sorgente: Entropia fornisce un limite sia inferiore che superiore al numero di bit per simbolo sorgente.. p.
Compressione Dati Teorema codifica sorgente: Entropia fornisce un limite sia inferiore che superiore al numero di bit per simbolo sorgente.. p.1/21 Compressione Dati Teorema codifica sorgente: Entropia
DettagliEsercizi su BST. IASD a.a A. De Bonis
Esercizi su BST Esercizio 1 Scrivere un algoritmo che prendein input un albero binarioe restituisce true se e solo se l alberoe` un albero binariodi ricerca. L algoritmo deve utilizzaresolo una quantita`
DettagliGrafi diretti. Un grafo diretto (o grafo orientato) G è una coppia (V,E) dove. V è u n i n s i e m e d i nodi (o vertici);
Algoritmi e Strutture di Dati II 2 Grafi diretti Un grafo diretto (o grafo orientato) G è una coppia (V,E) dove V è u n i n s i e m e d i nodi (o vertici); E µ V V è u n i n s i e m e d i archi. Denotiamo
DettagliAlberi 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
DettagliEsercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it Ultimo aggiornamento: 29 novembre 2010 1 Rotazioni semplici in ABR Si consideri l operazione di rotazione semplice applicata
DettagliLezione 9 Alberi binari di ricerca
Lezione 9 Alberi binari di ricerca Rossano Venturini rossano.venturini@unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 1 Lista monodirezionale Scrivere
DettagliGrafi: 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
DettagliProgettazione di algoritmi
Progettazione di algoritmi Discussione dell'esercizio [vincoli] Prima di tutto rappresentiamo il problema con un grafo G: i nodi sono le n lavorazioni L 1, L 2,, L n, e tra due nodi L h, L k c'è un arco
DettagliGRAFI. fig.1 - GRAFI (1) Si avvisa il lettore che certe definizioni che verranno date differiscono da quelle presenti in letteratura.
GRAFI 1. Definizioni, terminologia, esempi e applicazioni (1) Un grafo orientato (o diretto o di-grafo) G è una coppia (V,E) dove V è un insieme non vuoto ed E una relazione binaria su V, E V V, ossia
DettagliEsercizi 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 =
Dettagli«Sciente e Tecnologie dei Beni Culturali»
5 Informatica CdS in «Sciente e Tecnologie dei Beni Culturali» AA 2014-2015 Mini-sito dell insegnamento: http://www.unife.it/scienze/beni.culturali/insegnamenti/informatica Prof. Giorgio Poletti giorgio.poletti@unife.it
DettagliAlberi. In informatica, un albero è un modello astratto di una struttura dati gerarchica
Il TDA Tree Alberi In informatica, un albero è un modello astratto di una struttura dati gerarchica Struttura dati non lineare Si pensi al file system di un sistema operativo Le relazioni in un albero
DettagliALBERI DI RICERCA BINARI (O ALBERI BINARI DI RICERCA)
ALBERI DI RICERCA BINARI (O ALBERI BINARI DI RICERCA) Definizione induttiva: un albero vuoto è un albero di ricerca binario un albero non vuoto avente per radice l'elemento (di chiave) x e per sottoalberi
DettagliGestione della produzione e della supply chain Logistica distributiva
Gestione della produzione e della supply chain Logistica distributiva Paolo Detti Dipartimento di Ingegneria dell Informazione e Scienze Matematiche Università di Siena Convergenza dell algoritmo Se non
Dettaglidizionari alberi bilanciati
dizionari alberi bilanciati dizionari ADT che supportano le seguenti operazioni membership anche detta search insert delete o remove le liste e i BST sono dizionari maggio 2002 ASD2002 - Alberi bilanciati
DettagliQuando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione.
Grafi ed Alberi Pag. /26 Grafi ed Alberi In questo capitolo richiameremo i principali concetti di due ADT che ricorreranno puntualmente nel corso della nostra trattazione: i grafi e gli alberi. Naturale
DettagliAlgoritmi e giochi combinatori
Algoritmi e giochi combinatori Panoramica Giochi combinatori Programmi che giocano Albero di un gioco L algoritmo Minimax 1 Perché studiare i giochi? Problemi che coinvolgono agenti in competizione tra
DettagliEsempi. non. orientato. orientato
Definizione! Un grafo G = (V,E) è costituito da un insieme di vertici V ed un insieme di archi E ciascuno dei quali connette due vertici in V detti estremi dell arco.! Un grafo è orientato quando vi è
DettagliAlgoritmi 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à
Dettagli