Was ist ein Heap in der Informatik?
Ein Heap (englisch wörtlich: Haufen oder Halde) in der Informatik ist eine zumeist auf Bäumen basierende abstrakte Datenstruktur. In einem Heap können Objekte oder Elemente abgelegt und aus diesem wieder entnommen werden. Sie dienen damit der Speicherung von Mengen.
Warum ist der Heap nicht obligatorisch?
Im Gegensatz zum Stack ist der Heap für Embedded-Systeme nicht obligatorisch und wird sehr selten verwendet, nicht zuletzt wegen des nicht-deterministischen Verhaltens: Wenn die dynamisch allokierten Objekte unterschiedliche Größen haben, wird der Heap mit der Zeit fragmentiert.
Wie wächst der Min-Heap?
Der Haufen wächst – wie bei Baumstrukturen meistens – von der Wurzel aus nach unten und von links nach rechts. Der Min-Heap zeichnet sich durch die Eigenschaft aus, dass der Elternknoten immer kleiner oder gleich der Kindknoten ist.
Wie wird die Heap-Bedingung wieder hergestellt?
Danach wird die Heap-Bedingung wieder hergestellt. Dazu geht man von dem neu eingefügtem Element aus nach oben bis zur Spitze des Baums, und wenn an einer Stelle das Vaterelement größer als das Kindelement ist, werden die beiden Elemente vertauscht.
Was ist die Heap-Eigenschaft?
Heap-Eigenschaft besagt, dass, wenn y ein untergeordneter Knoten von x ist, der im Knoten x gespeicherte Wert größer oder gleich dem im Knoten y gespeicherten Wert sein sollte (dh Wert (x) ≥ Wert (y)). Diese Eigenschaft impliziert, dass der Knoten mit dem größten Wert immer am Stamm platziert wird.
Wie ist die Bedingung beim Max-Heap?
Beim Max-Heap ist die Bedingung genau andersherum: Die Werte in den Kindknoten müssen stets kleiner oder gleich denen der Elternknoten sein. Dadurch ist die Bedingung, dass die Wurzel des Baums das Element mit dem maximalen Schlüssel darstellt. Heaps unterstützen je nach Art verschiedene Formen von Operationen: