Adloun

Hauteur d'un arbre général

Exercice · OCaml (option informatique), chapitre 7 — Enregistrements et types mutuellement récursifs

Énoncé

Écrire hauteur_arbre : pour une feuille, et de plus que la hauteur maximale de ses sous-arbres sinon (forêt vide hauteur ).

Corrigé

let rec hauteur_arbre a =
  match a with
  | Noeud (_, f) -> 1 + hauteur_foret f
and hauteur_foret f =
  match f with
  | [] -> 0
  | a :: reste ->
      let h = hauteur_arbre a and hr = hauteur_foret reste in
      if h > hr then h else hr

hauteur_foret renvoie la plus grande hauteur des arbres de la forêt (et pour la forêt vide). Une feuille Noeud (x, []) a donc pour hauteur 1 + 0 = 1.

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.