Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (* Entraînement aux arbres *)
- (* Créations du type d'arbre entier, et d'arbre non entier *)
- type 'a tree = Vide | Node of 'a*'a tree*'a tree;;
- type ('f,'n) abe = Feuille of 'f | Noeud of 'n* ('f,'n) abe *('f,'n) abe;;
- let exemple1 =
- Noeud( 1,
- Noeud( 2,
- Feuille 4,
- Noeud( 5,
- Feuille 7,
- Feuille 8)),
- Noeud( 3,
- Feuille 0,
- Noeud( 6,
- Feuille 9,
- Feuille 0)));;
- let toto =
- Node( 1,
- Node( 2,
- Node( 4,Vide,Vide),
- Node( 5,
- Node(7,Vide,Vide),
- Node(8,Vide,Vide))),
- Node( 3,
- Vide,
- Node( 6,
- Node(9,Vide,Vide),
- Vide)));;
- let parcours_prefixe arbre =
- let rec aux arbre arenvoyer = match arbre with
- |Vide -> arenvoyer
- |Node (n,fg,fd) -> aux fd (aux fg (n::arenvoyer)) in
- List.rev (aux arbre []);;
- let parcours_infixe arbre =
- let rec aux arbre arenvoyer = match arbre with
- |Vide -> arenvoyer
- |Node (n,fg,fd) -> aux fd (n::(aux fg (n::arenvoyer))) in
- List.rev (aux arbre []);;
- let parcours_postfixe arbre =
- let rec aux arbre arenvoyer = match arbre with
- |Vide -> arenvoyer
- |Node (n,fg,fd) -> n::(aux fd (aux fg (arenvoyer))) in
- List.rev (aux arbre []);;
- let parcours_profondeur arbre =
- let rec aux liste_arbre deja_vu = match liste_arbre with
- |[] -> deja_vu
- |(Feuille f)::t -> aux t (f::deja_vu)
- |(Noeud (n,fg,fd))::t -> aux (fg::fd::t) (n::deja_vu)
- in List.rev (aux [arbre] []);;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement