📘 Fiche de cours
L'essentiel du cours
Un Tas (Heap) est un arbre binaire complet stocké dans un tableau.
- Propriété de structure : Pour un nœud à l'indice $i$, son fils gauche est à $2i+1$ et son fils droit à $2i+2$.
- Propriété de tas : Dans un Max-Heap, pour tout nœud $i$, $A[parent(i)] \geq A[i]$.
- File de priorité : Structure permettant
Insert(x)etExtract-Max().
Méthodes à maîtriser
- Sift-Up (Remonter) : Utilisé lors de l'insertion. On compare l'élément avec son parent et on échange si la propriété est violée.
- Sift-Down (Descendre) : Utilisé lors de la suppression. On compare le nœud avec ses fils et on échange avec le plus grand (pour Max-Heap).
- Build-Heap : Construction d'un tas à partir d'un tableau non ordonné en $O(n)$.
Exemples corrigés
- Insertion de 15 dans [20, 10, 5] : On place 15 à la fin : [20, 10, 5, 15]. 15 > 10 (parent), on échange : [20, 15, 5, 10].
- Extract-Max : On remplace la racine par le dernier élément, puis on fait
Sift-Down.
Erreurs fréquentes
- Confondre Tas et Arbre Binaire de Recherche (ABR) : Dans un tas, il n'y a pas d'ordre entre les frères.
- Oublier que l'arbre doit rester complet après chaque opération.