
Pour l'utiliser : open Asda définit les types :
type 'a tree = Empty | Bin of 'a * 'a tree * 'a tree type 'a rb = EmptyRB | Red of 'a * 'a rb * 'a rb | Black of 'a * 'a rb * 'a rb
bash <(curl -s http://www.labri.fr/perso/zeitoun/opam_emacs_script)
Après installation et avant utilisation, en début de fichier :
(* accès aux types *) open Asda (* accès aux fonctions de visualisation sans le préfixe View. *) open View (* accès aux générateurs sans le préfixe Rand. *) open Rand
Le module View fournit 4 fonctions d'affichage :
view : affiche un arbre d'étiquettes int.view_mult : affiche un arbre d'étiquettes int*int.view_rb : comme view, pour les arbres bicolores.view_rb_mult : comme view_mult, pour les arbres bicolores.
Le module Rand fournit des générateurs d'arbres et d'ABR.
bintree et bintree' : arbres binaires.équiprobables).full : arbres binaires pleins.perfect, quasi-perfect, almost_perfect : arbres parfaits, quasi-parfaits, et "proches" des arbres parfaits.unbalanced_right : arbres ayant plus de nœuds à droite.bst : arbres binaires de recherche.avl : AVL.rb : arbres rouges et noirs.
Toute les fonctions de génération d'arbres prennent un argument : ().
open Asda open View open Rand let _ = view (Bin(42, Empty, Empty)) (* la fonction bintree construit un arbre sans multiplicité *) let t = bintree () let _ = view t (* les fonctions avl et rb construisent un arbre avec multiplicité *) let t = avl () let _ = view_mult t let t = rb () let _ = view_rb_mult t
() de type unit.bintree, full, bst, avl, rb.perfect et quasi_perfect.
Syntaxe :
let t = bintree ~size:42 () let _ = view t let t = quasi_perfect ~height:5 () let _ = view t
().
Exemple :
let myview_mult t = view_mult ~show_empty:true ~node_fillcolor:"e1ffdf" ~node_color:"e1eeca" ~empty_fillcolor:"ffe1df" ~empty_color:"ffbaba" t let _ = myview_mult (bst ~size:20 ())
~format).