Wenn ich Elemente: 10,12,14,1,6 in einen binären Min-Heap ein Element nach dem anderen einfügen würde, wie würden die Ergebnisse aussehen, ist mein Problem mit dem folgenden
Wenn ich anfange, habe ich:
%Vor%dann
%Vor%dann
%Vor%dann
%Vor%Aber das ist nicht richtig, also was ist der richtige Weg?
Hinweis: Dies ist eine Hausaufgabenfrage, ich versuche das Konzept zu verstehen, wenn Sie sich bei der Lösung der Frage nicht wohl fühlen (es ist sowieso nicht die ganze Frage), geben Sie bitte ein Beispiel mit ähnlichem Thema an.
Sie müssen das neue Element als Kind (oder Blatt genau) zum Heap (nicht als root) hinzufügen, das heißt, Sie müssen es an der ersten "richtigen" freien Stelle (oder in Ihrem Heap-Array, nur bei das Ende).
Dann müssen Sie die Heap-Bedingungen wiederherstellen, das heißt "heapify". Dies geschieht in zwei Phasen:
Das bedeutet
%Vor%+ 1 führt zu
%Vor%Und das verstößt gegen die Heap-Bedingungen, also müssen Sie
kopieren %Vor%Aber das ist immer noch nicht richtig, also musst du es erneut haufen
%Vor%Und da bist du ... alles in Ordnung jetzt: -)
Tags und Links binary-tree