Files de priorité : le tas binaire
Cours · OCaml (option informatique), chapitre 19 · prépas MPSI et MP, option informatique · le début du chapitre, la suite sur Adloun
19.1 Introduction et motivation
Une file de priorité est une collection d'où l'on extrait toujours l'élément le plus prioritaire (ici, le plus petit) — comme un service d'urgences traite d'abord les cas les plus graves. C'est l'outil qui manquait au chapitre 16 : Dijkstra a besoin, à chaque étape, du sommet non traité de plus petite distance. Avec une liste ou un tableau, le trouver coûte ; une file de priorité bien faite le donne en .
La structure reine pour cela est le tas binaire, un arbre binaire presque complet rangé… dans un simple tableau (chapitre 5). Ce chapitre l'implémente — insertion, extraction du minimum, construction — puis en tire le tri par tas (chapitre 9) et une version efficace de Dijkstra (chapitre 16).
19.2 Le tas binaire
Un tas binaire est un arbre binaire presque complet (tous les niveaux remplis sauf peut-être le dernier, de gauche à droite) vérifiant la propriété de tas : tout nœud est ses enfants. Conséquence : le minimum est à la racine.
Exercices du chapitre
- Extraire le minimum corrigé
- Vérifier la propriété de tas corrigé
- Tri par tas corrigé
- Les plus petits éléments corrigé
- Construire un tas en corrigé
- File de priorité de couples corrigé