TESTI
[2]
Si definisca una funzione OCaML a tre argomenti insert_at che prende un elemento x, un indice
n ed una lista
lst, e inserisce x in posizione n in lst.
# insert_at "alfa" 1 ["a"; "b"; "c"; "d"];;
- : string list = ["a"; "alfa"; "b"; "c"; "d"]
# insert_at "alfa" 3 ["a"; "b"; "c"; "d"];;
- : string list = ["a"; "b"; "c"; "alfa"; "d"]
# insert_at "alfa" 4 ["a"; "b"; "c"; "d"];;
- : string list = ["a"; "b"; "c"; "d"; "alfa"]
Soluzione: il file ese2
[4]
Si considerino gli alberi binari definiti
a lezione <\font>
# type tree=Empty|
Node of tree * int * tree;;
- : type tree=Empty|
Node of tree * int * tree
e per esempio
# let t1=Empty;;
let t2= Node(Node(Empty, 1, Empty),3, Empty);;
let t3=Node(t2, 3, Node(Empty, 4, Node(Empty, 7, Empty)));;
[5]
Si definisca una funzione OCaML sum che prende un albero binario t e restituisce la somma degli elementi.
[6]
Si definisca una funzione OCaML nodes che prende un albero binario t e restituisce il numero dei nodi dellĠ albero.
[6]
Si definisca una funzione OCaML depth che prende un albero binario t e restituisce la lunghezza del cammino massimo.
[7]
Si definisca una funzione OCaML contains che prende un albero binario t
ed un valore intero n e restituisce true se n eĠ contenuto in un nodo di t false altrimenti
[8] Si definisca una funzione OCaML equals che prende due alberi binari t1 e t2 e restituisce true se t1 e t2 sono lo stesso albero false altrimenti
[9] Si definisca una funzione OCaML subset che prende due alberi binari t1 e t2 e restituisce true se tutti i valori di t1 sono contenuti in t2 n false altrimenti
[9] Si definisca una funzione OCaML subtree che prende due alberi binari t1 e t2 e restituisce true se t1 eĠ sottoalbero di t2 n false altrimenti
[9] Si definisca una funzione OCaML toList che prende un albero binario t e restituisce una lista che contiene e i valori dei nodi dellĠalbero in ordine arbitario.
[9] Si definisca una funzione OCaML incBy che prende un albero binario t ed una corrispondente lista di interi lst con n elementi (dove n corrisponde alla profondita di t). La funzione restituisce lĠ albero binario ottenuto da t, incrementando il valore dei nodi a livello i con il valore i-esimo nella lista.
Soluzione: il file ese4
|