Tas (informatique)

Un exemple de tas. Il contient 9 éléments. L'élément le plus prioritaire (100) est à la racine.

En informatique, un tas[1] (ou monceau au Canada[2], heap en anglais) est une structure de données de type arbre qui permet de retrouver directement l'élément que l'on veut traiter en priorité. C'est un arbre binaire presque complet ordonné. Un arbre binaire est dit presque complet si tous ses niveaux sont remplis, sauf éventuellement le dernier, qui doit être rempli sur la gauche (cf. Contre-exemples). Ses feuilles sont donc à la même distance minimale de la racine, plus ou moins 1.

Pour utiliser un tas, les clés sont ordonnées selon la propriété de tas : la clé d'un nœud parent a une plus haute priorité que les clés de ses enfants. La « priorité » signifie ici que les clés des enfants sont soit toutes inférieures, soit toutes supérieures, suivant que le tas est ordonné pour avoir en racine la clé maximale (max heap) ou minimale (min heap). Une fois traitée, la donnée de plus haute priorité peut ou non être enlevée, ce qui modifie le tas.

Les tas ont été introduits par J. W. J. Williams (en) en 1964 pour l'algorithme du tri par tas (cf la section ci-après pour une première introduction à ce tri)[3].

  1. (en) Thomas H. Cormen, Introduction to Algorithms, 1313 p. (lire en ligne), p. 151-169.
  2. Robert Laganière, « CSI 2510 : Structure de données et algorithmes », sur site.uottawa.ca (consulté le ).
  3. JWJ Williams, « Algorithm 232: Heapsort », Communication of the ACM, vol. 7,‎ , p. 347–348 (lire en ligne, consulté le ).

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Nelliwinne