Was ist die Nutzung des Heap-Datenstruktur?

Arbeite ich an einige Hausaufgaben mit Haufen, und ich verstehe, wie Sie strukturiert sind. Ein heap muss jeder Knoten der Erfüllung der heap-Eigenschaft,

die max-heap-Eigenschaft ist, dass für
jeden Knoten i außer der Wurzel,
Heap[Parent(i)] >= Heap[i]

Also an jedem Knoten, der höhere Knoten höhere zahlen haben, den unteren Knoten haben niedrigere zahlen. Verstehe ich das. Aber ich kann nicht sehen eine Verwendung von einem Haufen andere dann einfach Holen Sie sich die höchste n zahlen in einer Liste. Ich sehe nicht einen einfachen Weg, um die Suche auf einen bestimmten Wert und return-Knoten, oder um die Suche für die n-niedrigsten Zahl (in einem max-heap). Beide sind relativ einfach in einem binären Suchbaum.

Warum würden Sie nicht einfach mit einem einfachen binären Suchbaum? Oder noch besser, eine ausgewogene binären Suchbaum?

BEARBEITEN:
Ich sollte anmerken, dass dies nicht auf der Suche nach einer Antwort auf eine Hausaufgaben-problem. Die eigentlichen Hausaufgaben problem war das schreiben pseudocode für parallel-p-heap für die insert() und extractMax () - Funktionen. Und ich schon beantwortet. Sie gerade machte mir klar, dass ich nicht wirklich verstehe Haufen.

  • mögliche Duplikate von Wenn würde ich wollen, zu einem heap?
  • Ich suchte für die Antwort auf SO verpasste aber, dass man. Und ja, es sieht aus wie ich bin ein dup. Sollte ich in der Nähe meine Frage?
  • Das ist nicht notwendig. Es geht um geschlossen zu sein von uns, aber dups sind allgemein als Gute Dinge, da gibt es mehr als einen Weg, um die gleiche Frage zu stellen.
  • funktioniert für mich, ich habe meine Antwort.
  • bewegen Sie den Kommentar zu einer Antwort und ich werde es akzeptieren.
  • Ich habe bereits eine Antwort -- werde ich hinzufügen, dass die neuen Informationen.

InformationsquelleAutor jb. | 2011-03-08
Schreibe einen Kommentar