• Non ci sono risultati.

EXE su alberi binari di ricerca

N/A
N/A
Protected

Academic year: 2021

Condividi "EXE su alberi binari di ricerca"

Copied!
3
0
0

Testo completo

(1)

EXE su alberi binari di ricerca

INFORMATICA III

Parte B - Progettazione e Algoritmi

Patrizia Scandurra patrizia.scandurra@unibg.it

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

(2)

Esercizi

Procurarsi la cartella src_BST di codice fornita nella lezione7 in aula, e svolgere:

1. Arricchire l’interfaccia AlberoBinario e la classe AlberoBinarioImpl con la seguente operazione:

public boolean isBST(AlberoBinario T);

che verifica se un dato albero binario soddisfa la proprietà di ricerca degli alberi binari di ricerca

2. Arricchire la classe AlberoBR (che implementa un albero binario di ricerca) con i metodi per la ricerca del predecessore e successore di un nodo (vedi pseudocodice fornito a lezione).

3. 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è il campo elem di un nodo conterrà una lista di Record e non un record solamente). Ridefinire, quindi, la struttura dell’albero e le operazioni di inserimento, ricerca e cancellazione in modo tale che riflettano la nuova rappresentazione dei dati.

2

(3)

Esercizi

4. Si definisce Interval Tree un albero binario di ricerca i cui elementi sono intervalli [a, b], con a b, sulla retta reale. La chiave di un elemento [a, b] è rappresentata dall’estremo sinistro a dell’intervallo. Nell’albero non possono esistere due intervalli [a, b] e [c, d] in cui il primo sia interamente contenuto nel secondo, cio`e con c a b d. Ad esempio, l’Interval Tree costruito a partire dall’albero vuoto inserendo nell’ordine i seguenti intervalli [9, 12], [4, 7], [17, 18], [1, 3], [8, 10], [14, 16], [20, 21], [2, 4], [13, 15] è:

Implementare un algoritmo efficiente che dato un intervallo [a, b] e un Interval Tree T determina se [a, b] può essere inserito in T, ovvero se non esiste in T un itervallo che

contiene interamente [a, b] o che è contenuto interamente in [a, b]. Qual `e la complessità dell’algoritmo?

3

Riferimenti

Documenti correlati

Nella scheda Generale nella parte inferiore della finestra fare clic sulla casella della proprietà Indicizzato, quindi fare clic su Sì (Duplicati possibili) oppure

Scrivere una funzione che prende in input un albero binario e restituisce in output una stampa dell’albero in notazione a parentesi, come visto nella prima sezione.. F Scrivere

– Al più il ricalcolo riguarderà un cammino dal padre del nodo eliminato fino alla radice, quindi ha costo O(log n). ● Per ogni nodo con fattore di bilanciamento ±2, occorre

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

Scrivere un programma che legga da tastiera una sequenza di n interi NON distinti e li inserisca senza duplicati in una tabella hash di dimensione 2n posizioni utilizzando

Scrivere un programma che legga da tastiera una sequenza di N interi di- stinti e li inserisca in un albero binario di ricerca (senza ribilanciamento).. Il programma deve

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

Uno sportello ha come dati membro una coda (queue) di persone (ogni persona è rappresentata con un carattere), se è aperto (true/false) ed il nome di un file..