Adloun

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

Parcours infixe

Types sommes et arbres · niveau 3 (difficile)

Énoncé

Écrire infixe : 'a arbre -> 'a list qui liste les étiquettes en ordre gauche – racine – droite. Que vaut ce parcours sur un ABR ? Discuter le coût.

Corrigé

let rec infixe a =
  match a with
  | Vide -> []
  | Noeud (g, x, d) -> infixe g @ [x] @ infixe d

Sur un ABR, le parcours infixe renvoie les étiquettes triées par ordre croissant — c'est une propriété caractéristique. Côté coût, les @ répétés rendent ce parcours quadratique dans le pire cas ; une variante à accumulateur (aux g (x :: aux d acc)) le ramène en — même idée que le renverse du chapitre 2.

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre