• Non ci sono risultati.

Dato un albero binario, progettare un algoritmo efficiente che stampi le chiavi di tutti e soli i nodi 0-bilanciati e analizzarne la complessit`a

N/A
N/A
Protected

Academic year: 2021

Condividi "Dato un albero binario, progettare un algoritmo efficiente che stampi le chiavi di tutti e soli i nodi 0-bilanciati e analizzarne la complessit`a"

Copied!
1
0
0

Testo completo

(1)

008AA – ALGORITMICA E LABORATORIO Appello dell’1 febbraio 2016

Cognome Nome: N. Matricola: Corso: A B

Esercizio 1. (10 punti)

Un nodo v in un albero binario si dice 0-bilanciato se le altezze dei sottoalberi radicati nei suoi due figli sono uguali. Dato un albero binario, progettare un algoritmo efficiente che stampi le chiavi di tutti e soli i nodi 0-bilanciati e analizzarne la complessit`a.

Esercizio 2. (10 punti)

E dato un array a di n interi non necessariamente distinti. Diciamo che un elemento `` e di maggioranza se appare in a almeno dn/2e volte. Progettare un algoritmo di complessit`a

1. O(n2) 2. Θ(n log n)

che stabilisca se a contiene un elemento di maggioranza, e in caso affermativo lo restituisca.

Esercizio 3. (8 punti)

E dato il seguente grafo orientato, rappresentato con liste di adiacenza ordinate alfabeticamente:`

h b

c

d e

g

f a

1. Indicare l’ordine di visita BFS e DFS dei vertici del grafo, partendo dal vertice a.

2. Disegnare gli alberi BFS e DFS ottenuti con le visite.

3. Indicare la classificazione degli archi indotta dalla visita DFS.

Esercizio 4. (4 punti)

Dimostrare per induzione che il numero di foglie Li di un albero di Fibonacci di altezza i `e uguale a Fi+1, dove Fi li-esimo numero di Fibonacci.

Riferimenti

Documenti correlati

costruire un albero binario di ricerca Marco Lapegna – Laboratorio di Programmazione 2 Cenni agli alberi. procedura ricerca(in: radice, e;

Dato un albero binario, progettare un algoritmo efficiente per determinare il minimo valore di ∆ per cui l’albero risulti ∆-bilanciato. Analizzare la complessit` a

Dato un albero binario T di n nodi, scrivere lo pseudocodice di un algoritmo efficiente che restituisce TRUE se per ogni nodo u di T vale la seguente propriet` a: il

Progettare un algoritmo efficiente che stampi le chiavi memorizzate nei nodi di un albero binario per livelli, ovvero in ordine di distanza crescente dalla radice1. Simulare

Dato un array a di n interi, progettare un algoritmo efficiente che costruisca ricorsivamente un albero binario bilanciato tale che a[i] sia l(i+1)-esimo campo u.dato in ordine

Si definisca un algoritmo efficiente che calcoli il numero di catene massimali sinistre L T per un qualsiasi albero binario T3.

Si definisca un algoritmo efficiente che, dato T, restituisca il puntatore alla radice del sotto-albero di T, di dimensione maggiore, formato da tutti nodi di colore rosso.. Si

Dato un albero binario i cui nodi sono colorati di rosso o di nero, progettare un algoritmo efficiente che calcoli il numero di nodi aventi lo stesso numero di discendenti rossi