J'ai toujours pensé que les tas et les files d'attente prioritaires étaient des synonymes - une structure de données abstraite qui prend en charge les opérations insert
, findMin
et deleteMin
.
Certains auteurs semblent être d’accord avec moi, par exemple les structures de données purement fonctionnelles de Chris Okasaki (chapitre 3).
D'autre part, la page de tas de Wikipédia la définit comme une structure de données basée sur une arborescence et indique que les tas sont une implémentation concrète de files d'attente prioritaires.
J'ai du mal à concilier cela avec le fait que je peux penser à plus d'une mise en œuvre de tas: tas de gauche, tas de binômes, tas de disques ...
Le simple fait qu’un tas puisse être implémenté avec différentes structures de données ne signifie-t-il pas, par définition, qu’il s’agit d’une structure de données abstraite? Et si tel est le cas, existe-t-il une différence réelle avec les files d'attente prioritaires?