Bonjour,
apparemment j'aurais un problème sur ma fonction btree_size mais je ne comprend pas pourquoi. Pouriez_vous m'expliquer ?
let rec btree_size t = match t with
Empty -> 0
| bin(x,t1,t2) -> 1 + btree_size t1 + btree_size t2 ;;
let rec nb_de_feuilles t = match t with
Empty -> 1
| bin(x,t1,t2) -> btree_size t1 + btree_size t2 ;;
let arity t = match t with
Empty -> -1
| bin(x,t1,t2) -> if (t1 = Empty && t2 = Empty) then 0 else if (t1 = Empty && t2 != Empty) || (t1 != Empty && t2 = Empty) then 1 else
2 ;;
let rec nb_noeud_2 t = match t with
Empty -> 0
| Bin(x,t1,t2) -> if arity t1 = 2 && arity t2 = 2 then 2 + nb_noeud_2 t1 + nb_noeud_2 t2 else
if (arity t1 != 2 && arity t2 = 2) || (arity t1 = 2 && arity t2 != 2) then 1 + nb_noeud_2 t1 + nb_noeud_2 t2 else 0 + nb_noeud_2 t1 + nb_noeud_2 t2;;
let rec nb_noeud_1 t = match t with
Empty -> 0
| Bin(x,t1,t2) -> if arity t1 = 2 && arity t2 = 1 then 2 + nb_noeud_2 t1 + nb_noeud_2 t2 else
if (arity t1 != 1 && arity t2 = 1) || (arity t1 = 1 && arity t2 != 1) then 1 + nb_noeud_2 t1 + nb_noeud_2 t2 else 0 + nb_noeud_2 t1 + nb_noeud_2 t2;;
let rec btree_height t = match t with
Empty -> -1
| Bin (x,t1,t2) -> 1 + max (btree_height t1)(btree_height t2) ;;
let rec parameters t = (btree_size t, nb_de_feuilles t, nb_noeud_1 t, nb_noeud_2 t, btree_height t) ;;
Merci d'avance.