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
).