Esercizi
- Scrivere una funzione ricorsiva che stampa tutti i valori di una LinkedList in ordine inverso in tempo lineare.
- Scrivere una funzione
search
ricorsiva che decide se un elemento passato in input è presente in un albero binario.
- Scrivere una funzione
size
ricorsiva che calcola il numero di nodi in un albero binario.
- Scrivere la funzione
preorder
in modo iterativo e non ricorsivo. La funzione deve essere lineare.
- Scrivere la funzione
postorder
in modo iterativo e non ricorsivo. La funzione deve essere lineare.
- Scrivere la funzione
inorder
in modo iterativo e non ricorsivo. La funzione deve essere lineare.
- Scrivere una funzione ricorsiva che calcola l’altezza di un albero binario in tempo lineare.
- Dato un albero binario, scrivere una funzione ricorsiva con complessità temporale lineare che stampa la chiave del nodo x se il sottoalbero radicato in x ha altezza maggiore di 5, per ogni nodo x.
- Dato un albero binario, scrivere una funzione ricorsiva con complessità temporale lineare che stampa la chiave del nodo x se il livello di x è uguale all’altezza del sottoalbero radicato in x (modificare l’esercizio precedente), per ogni nodo x.
- Dato un albero binario, scrivere una funzione ricorsiva con complessità temporale lineare che stampa la chiave del nodo x se la somma dele chiavi nel sottoalbero radicato in x è multiplo di 3 (modificare l’esercizio precedente), per ogni nodo x.
- Dato un albero binario, scrivere una funzione ricorsiva con complessità temporale lineare che stampa la chiave del nodo x se la media delle chiavi nel sottoalbero radicato in x è maggiore di 7, per ogni nodo x.
- Scrivere una classe per memorizzare alberi non necessariamente binari e ripetere gli ultimi cinque esercizi senza l’assunzione che l’albero sia binario.
Next Section - Vocabolario e Definizioni