Qu'est-ce que l'utilisation des Tas de structure de données?

Je travaille sur certains devoirs impliquant des Tas, et je comprends comment ils sont structurés. Un tas doit avoir chaque nœud satisfaisant la propriété tas,

max-tas de propriété, c'est que pour
chaque noeud i les autres, puis la racine,
Tas[Parent(i)] >= Tas[i]

Donc à chaque nœud, les nœuds supérieurs ont un plus grand nombre, les nœuds inférieurs ont des numéros les plus bas. Je comprends cela. Mais je ne peux pas voir une utilisation d'un Tas d'autres ensuite simplement à obtenir le plus haut n nombres dans une liste. Je ne vois pas un moyen facile de rechercher une valeur particulière et retour le nœud, ou à la recherche de la n plus petit nombre (en un max-heap). Les deux sont relativement facile dans un arbre de recherche binaire.

Pourquoi ne pas simplement utiliser un simple arbre de recherche binaires? Ou mieux encore, un équilibre binaire un arbre de recherche?

EDIT:
Je tiens à souligner, que ce n'est pas la recherche d'une réponse à un problème. Le réel problème est l'écriture de pseudo-parallèle-p-tas pour l'insert() et extractMax (). Et j'ai déjà répondu. Ils ont juste fait je me rends compte que je ne comprends pas vraiment des Tas.

double possible de Quand je veux utiliser un segment de mémoire?
J'ai cherché la réponse sur la manière, mais raté. Et oui, on dirait que je suis une dup. Dois-je fermer ma question?
Pas de besoin. Il est sur le point d'être fermé par nous, mais de dup sont généralement considérés comme de Bonnes Choses, car il n'y a plus d'une façon de poser la même question.
fonctionne pour moi, j'ai eu ma réponse.
déplacer ce commentaire pour une réponse et je vais l'accepter.

OriginalL'auteur jb. | 2011-03-08