OCaml (option informatique) · Chapitre 19 · Exercice de TD
Vérifier la propriété de tas
Files de priorité : le tas binaire · niveau 2
Énoncé
Écrire est_un_tas d n : le tableau d (longueur utile n) respecte-t-il la propriété de tas ?
Corrigé
let est_un_tas d n =
let ok = ref true in
for i = 1 to n - 1 do
if d.((i - 1) / 2) > d.(i) then ok := false (* parent > enfant : violé *)
done;
!ok
Il suffit de vérifier, pour chaque nœud i (sauf la racine), qu'il n'est pas plus petit que son parent. Parcourir une seule fois les indices 1..n-1 suffit : chaque relation parent-enfant est ainsi testée. Coût .
Exercices semblables
- Extraire le minimum corrigé
- Tri par tas corrigé
- Les plus petits éléments corrigé
- Construire un tas en corrigé
- File de priorité de couples corrigé