Adloun

OCaml (option informatique) · Chapitre 3 · Exercice de TD

Compter les feuilles

Types sommes et arbres · niveau 2

Énoncé

Écrire nb_feuilles a, le nombre de feuilles (nœuds à deux sous-arbres vides).

Corrigé

let rec nb_feuilles a =
  match a with
  | Vide -> 0
  | Noeud (Vide, _, Vide) -> 1
  | Noeud (g, _, d) -> nb_feuilles g + nb_feuilles d

On distingue trois cas par filtrage : l'arbre vide ( feuille), la feuille (Noeud (Vide, _, Vide), qui en est une), et le nœud interne (somme des feuilles des deux sous-arbres). L'ordre importe : le motif feuille, plus particulier, doit précéder le motif général Noeud (g, _, d).

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre