• Non ci sono risultati.

Patrizia Scandurra patrizia.scandurra@unibg.it

N/A
N/A
Protected

Academic year: 2021

Condividi "Patrizia Scandurra patrizia.scandurra@unibg.it"

Copied!
3
0
0

Testo completo

(1)

EXE su strutture dati elementari

INFORMATICA III

Parte B - Progettazione e Algoritmi

Patrizia Scandurra patrizia.scandurra@unibg.it

Università degli Studi di Bergamo a.a. 2010-11

(2)

Alberi binari

Descrizione ricorsiva

• Molti algoritmi su alberi binari possono essere descritti in modo naturale sfruttando la definizione ricorsiva:

– Caso base - albero vuoto;

– Clausola ricorsiva - due chiamate ricorsive, una per ogni sotto- albero

• Esempio: Vedi i metodi numNodi() e numNodi(NodoBinario r) nell’’implementazione in Java del tipo albero binario

– Lezione3 sul sito del corso al link:

http://cs.unibg.it/scandurra/material/INF3B_1011/lezione3.zip

2

(3)

Esercizi

Arricchire l’interfaccia AlberoBinario e la classe AlberoBinarioImpl con le seguenti operazioni usando (dove possibile) la ricorsione:

a. public int altezza(); restituisce l’altezza di un albero b. public in numFoglie(); restituisce il numero di foglie

c. public int numNodiInterni(); restituisce il numero di nodi interni; ricorda che un nodo interno è un nodo che NON e' una foglia ovvero ha almeno un figlio.

d. public boolean isBalanced(); restituisce true se e solo se l'albero binario è perfettamente bilanciato. Un albero binario è perfettamente bilanciato se per ogni nodo n, detti sa e da le altezze rispettivamente del sottoalbero sinistro e destro, vale sa = da.

e. public boolean search (Object elem); stabilisce se un elemento appartiene o meno ad un dato albero binario, attraverso una visita ricorsiva. Il caso base è banale: se l'albero è vuoto, si restituisce false (zero); la visita viene interrotta non appena si trova l'elemento cercato (la prima occorrenza).

f. public Comparable max(); restituisce il massimo tra gli oggetti contenuti nell'albero, assumendo che l'albero non sia vuoto e che tutti gli oggetti in esso contenuti implementino l'interfaccia Comparable.

g. public boolean isCompleto(); restituisce true se e solo se l'albero è completo ovvero se: ogni nodo interno ha esattamente 2 figli, e tutte le foglie hanno la

stessa profondità (livello). 3

Riferimenti

Documenti correlati

Altro Non sa / Non risponde Suddivisione in lotti Soglie di qualificazione e di centralizzazione della committenza Progettazione Appalto integrato Avvalimento Prezzari regionali

Le classi e gli studenti interessati a partecipare all’incontro, previa autorizzazione dei docenti in orario, dovranno iscriversi tramite i propri rappresentanti presso la

Il nuovo PTRC del Veneto punta invece sul “Bilanciere” Padova-Venezia, immaginando così la città capoluogo di un Veneto policentrico, il “terzo Veneto”,

Il volume raccoglie, in forma di saggio, più estesi lavori di ricerca con- dotti nel corso degli ultimi anni da alcuni allievi del Conservatorio “Giu- seppe Nicolini”,

La serie «Musica e didattica» dei «Quaderni del Conservatorio “Giusep- pe Nicolini”», inaugurata nel 2016 con la pubblicazione di un origina- le progetto

Anche se il conseguimento dell’abilitazione ad una professione “non protetta” (quale quelle della Logopedista, dell’Ortottista e dell’Igienista Dentale) ha lo stesso

 corsi avanzati di lingua inglese presso l’ospedale Fatebenefratelli (Isola Tiberina) per personale infermieristico e medico per “l’accoglienza alla paziente

– Valutazione dello sviluppo agile : uso dei metodi (testing, copertura, refactoring, ecc..), strumenti (tool e Plug-in Eclipse) e tecnologie (librerie, APIs, ecc..) spiegati a