type 'a avl = Vide | N of int * 'a avl * 'a * 'a avl ;; let exemple_1 = N (3, N (1, N (0, Vide, 0, Vide), 1, N (0, Vide, 2, Vide)), 3, N (2, N (1, N (0, Vide, 4, Vide), 5, N (0, Vide, 6, Vide)), 7, N (1, N (0, Vide, 8, Vide), 9, N (0, Vide, 10, Vide)))) and exemple_2 = N (4, N (0, Vide, 0, Vide), 1, N (3, N (0, Vide, 2, Vide), 3, N (2, N (1, N (0, Vide, 4, Vide), 5, N (0, Vide, 6, Vide)), 7, N (1, N (0, Vide, 8, Vide), 9, N (0, Vide, 10, Vide))))) and exemple_3 = N (2, N (1, N (0, Vide, 0, Vide), 1, N (0, Vide, 2, Vide)), 3, N (2, N (1, N (0, Vide, 4, Vide), 5, N (0, Vide, 6, Vide)), 7, N (1, N (0, Vide, 8, Vide), 9, N (0, Vide, 10, Vide)))) ;; (* Script de la question 12: *) (* let b=ref true ;; * let a=ref Vide ;; * for i=0 to 100 do * a:= inserer !a i ; * b:= !b && check_avl !a && check_abr !a * done ; * for i=0 to 100 do * a:= supprimer !a i ; * b:= !b && check_avl !a && check_abr !a * done ; * !b ;; *)