• Non ci sono risultati.

ESERCIZI (alberi binari di ricerca)

N/A
N/A
Protected

Academic year: 2021

Condividi "ESERCIZI (alberi binari di ricerca)"

Copied!
1
0
0

Testo completo

(1)

ESERCIZI (alberi binari di ricerca)

1. Progettare un algoritmo che verifichi se un albero binario i cui nodi contengono chiavi intere `e un albero binario di ricerca.

2. Dato un albero binario di ricerca con chiavi distinte, scrivere un algoritmo che lo trasformi nel suo inverso. L’albero risultante dovr avere la seguente propriet`a: per ogni nodo u dell’albero, tutti i nodi nel sottoalbero sinistro hanno chiave maggiore della chiave di u e tutti i nodi nel sottoalbero destro hanno chiave minore della chiave di u

3. Dato un albero binario di ricerca T , progettare e descrivere in pseudocodice un algoritmo efficiente che, per ogni nodo u dell’albero, stampi la chiave di u e la chiave di valore minimo del sottoalbero di cui u `e radice. Analizzare la complessit`a dell’algoritmo proposto.

4. Progettare un algoritmo per trasformare un array ordinato di n interi distinti in un albero binario di ricerca che sia il pi`u bilanciato possibile, in tempo O(n). Valutare esplicitamente la complessit`a dell’algoritmo proposto.

5. Sia T un albero binario di ricerca che implementa un dizionario. Sia v un nodo di T , e sia Tvil sottoalbero con radice v.

• Si progetti un algoritmo efficiente countLE(v, k) che, ricevuto in input un nodo v ∈ T e una chiave k restituisca il numero di elementi in Tv con chiave minore o uguale a k.

• Analizzare la complessit`a dell’algoritmo.

6. Siano x e y, x < y, due chiavi in un albero binario di ricerca radicato nel nodo u. Progettare un algoritmo efficiente Distanza(u,x,y) per trovare la distanza (ovvero il numero minimo di archi) tra il nodo di chiave x e il nodo di chiave y.

7. Dato un intervallo [a, b] e un albero binario di ricerca, progettare un algoritmo efficiente per stampare in ordine crescente le chiavi k ∈ [a, b].

8. Dato un albero binario di ricerca, stabilire se il nodo u `e il nodo mediano del sottoalbero di cui `e radice.

Riferimenti

Documenti correlati

• Nella rappresentazione basata sui nodi ogni nodo di un albero binario avrà due riferimenti a ciascuno dei figli (Left e Right). In alcune implementazioni si può avere anche

Definire la classe AlberoBRConDuplicatiInLista come estensione di AlberoBR per mantenere i duplicati (elementi distinti ma di chiavi uguali) in una lista contenuta in un nodo (cioè

Arricchire l’interfaccia AlberoBinario e la classe AlberoBinarioImpl con la seguente operazione: public boolean isBST(AlberoBinario T); che verifica se un dato albero binario

[r]

[r]

Un albero binario di ricerca (ABR) è un albero binario in cui per ogni nodo dell albero N tutti i nodi del sottoalbero sinistro di N hanno un valore minore o uguale di quello di N

Si ricordi che un albero binario di ricerca (ABR) è un albero binario in cui per ogni nodo dell albero tutti i nodi del suo sottoalbero sinistro hanno un valore minore (o

Un albero binario di ricerca (ABR) è un albero binario in cui per ogni nodo dell albero N tutti i nodi del sottoalbero sinistro di N hanno un valore minore o uguale di quello di N