<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Binomial-Heap</id>
	<title>Binomial-Heap - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Binomial-Heap"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Binomial-Heap&amp;action=history"/>
	<updated>2026-05-31T22:59:22Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Binomial-Heap&amp;diff=185409&amp;oldid=prev</id>
		<title>imported&gt;Attraktor: Tote Weblinks repariert - beim 1. Link konnte ich das Java-Applet noch nicht testen</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Binomial-Heap&amp;diff=185409&amp;oldid=prev"/>
		<updated>2022-07-29T22:51:21Z</updated>

		<summary type="html">&lt;p&gt;Tote Weblinks repariert - beim 1. Link konnte ich das Java-Applet noch nicht testen&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;In der [[Informatik]] ist ein &amp;#039;&amp;#039;&amp;#039;Binomial-Heap&amp;#039;&amp;#039;&amp;#039; eine [[Datenstruktur]], genauer ein [[Heap (Datenstruktur)|Heap]], der sich, ähnlich wie [[Binärer Heap|binäre Heaps]], als [[Vorrangwarteschlange]] einsetzen lässt. Das heißt, dass in beliebiger Reihenfolge [[Effizienz (Informatik)|effizient]] Elemente mit festgelegter Priorität in den Heap hineingelegt werden können und stets das Element mit höchster Priorität entnommen werden kann.&lt;br /&gt;
&lt;br /&gt;
Im Unterschied zu binären Heaps können Binomial-Heaps auch effizient vereinigt werden.&lt;br /&gt;
Dies ermöglicht es beispielsweise, effizient in einem Mehrprozessor-[[Multitasking]]-[[System]] die Aufgaben eines überlasteten [[Prozessor]]s einem anderen zu übertragen.&lt;br /&gt;
&lt;br /&gt;
Die Priorität der Elemente wird diesen durch [[Schlüssel (Informatik)|Schlüssel]] aufgeprägt.&lt;br /&gt;
Über der Menge der Schlüssel muss daher eine [[totale Ordnung]] bestehen, wie sie zum Beispiel die Kleiner-Gleich-Relation (≤) über den [[Ganze Zahl|ganzen Zahlen]] darstellt.&lt;br /&gt;
&lt;br /&gt;
Binomial-Heaps wurden erstmals 1978 von [[Jean Vuillemin]] beschrieben. 1987 wurde von [[Michael L. Fredman]] und [[Robert Tarjan]] daraus eine neue Datenstruktur abgeleitet, die sogenannten [[Fibonacci-Heap]]s. Diese besitzen [[Amortisierte Laufzeitanalyse|amortisiert]] teilweise bessere Laufzeiten und finden unter anderem Anwendung im [[Algorithmus von Dijkstra]] und im [[Algorithmus von Prim]]. Ihre Worst-Case Laufzeit ist teilweise aber deutlich schlechter, weshalb sie sich nicht für [[Online-Algorithmus|Online-Algorithmen]] eignen.&lt;br /&gt;
&lt;br /&gt;
== Operationen ==&lt;br /&gt;
Binomial-Heaps unterstützen effizient die Operationen&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;insert&amp;#039;&amp;#039; – zum Einfügen eines Elementes,&lt;br /&gt;
* &amp;#039;&amp;#039;remove&amp;#039;&amp;#039; – zum Entfernen eines Elementes,&lt;br /&gt;
* &amp;#039;&amp;#039;extractMin&amp;#039;&amp;#039; – zur Rückgabe und zum Entfernen eines Elementes mit minimalem Schlüssel (=höchster Priorität),&lt;br /&gt;
* &amp;#039;&amp;#039;changeKey&amp;#039;&amp;#039; – zum Ändern des Schlüssels eines Elementes und&lt;br /&gt;
* &amp;#039;&amp;#039;merge&amp;#039;&amp;#039; – zum Verschmelzen zweier Heaps.&lt;br /&gt;
&lt;br /&gt;
Alle Operationen lassen sich mit einer [[Asymptotische Laufzeit|Worst-Case-Laufzeit]] von &amp;#039;&amp;#039;O&amp;#039;&amp;#039;(log &amp;#039;&amp;#039;n&amp;#039;&amp;#039;) implementieren, wobei &amp;#039;&amp;#039;n&amp;#039;&amp;#039; die Zahl der aktuell im Heap befindlichen Elemente ist.&lt;br /&gt;
&lt;br /&gt;
== Binomial-Bäume ==&lt;br /&gt;
[[Datei:Binomial-tree-3.svg|mini|Binomial-Baum der Ordnung 3]]&lt;br /&gt;
&lt;br /&gt;
Binomial-Heaps bestehen aus einer Liste von Binomial-Bäumen verschiedener Ordnung. Binomial-Bäume und ihre Ordnung sind dabei wie folgt [[Rekursion|rekursiv]] definiert:&lt;br /&gt;
&lt;br /&gt;
* Ein Binomial-Baum der Ordnung 0 besteht aus einem einzelnen [[Knoten (Graphentheorie)|Knoten]].&lt;br /&gt;
* Ein Binomial-Baum der Ordnung &amp;#039;&amp;#039;k&amp;#039;&amp;#039; besitzt eine [[Wurzel (Graphentheorie)|Wurzel]] mit [[Grad (Graphentheorie)|Grad]] &amp;#039;&amp;#039;k,&amp;#039;&amp;#039; deren Kinder genau die Ordnung &amp;#039;&amp;#039;k&amp;#039;&amp;#039;−1, &amp;#039;&amp;#039;k&amp;#039;&amp;#039;−2, ..., 0 (in dieser Reihenfolge) besitzen.&lt;br /&gt;
&lt;br /&gt;
Ein Binomial-Baum der Ordnung &amp;#039;&amp;#039;k&amp;#039;&amp;#039; lässt sich also auch leicht aus zwei Binomial-Bäumen der Ordnung &amp;#039;&amp;#039;k&amp;#039;&amp;#039;−1 erstellen, indem einer der beiden Bäume zum am weitesten links stehenden Kind des anderen gemacht wird. Aus dieser Konstruktion lässt sich leicht per [[Vollständige Induktion|vollständiger Induktion]] die Eigenschaft ableiten, dass ein Binomial-Baum der Ordnung &amp;#039;&amp;#039;k&amp;#039;&amp;#039; genau 2&amp;lt;sup&amp;gt;&amp;#039;&amp;#039;k&amp;#039;&amp;#039;&amp;lt;/sup&amp;gt; Knoten und die [[Höhe (Graphentheorie)|Höhe]] &amp;#039;&amp;#039;k&amp;#039;&amp;#039; besitzt.&lt;br /&gt;
&lt;br /&gt;
== Struktur eines Binomial-Heaps ==&lt;br /&gt;
Ein Binomial-Heap speichert seine Elemente und die zugehörigen Schlüssel in den Knoten seiner Binomial-Bäume. Dabei erfüllt er folgende Eigenschaften:&lt;br /&gt;
&lt;br /&gt;
* Jeder Binomial-Baum im Heap erfüllt die Heap-Bedingung, das heißt mit Ausnahme der Wurzel, die keinen [[Gewurzelter Baum#Weitere Begriffe|Elternknoten]] besitzt, gilt für jeden seiner Knoten, dass der zugehörige Schlüssel größer oder gleich dem Schlüssel seines Elternknotens ist.&lt;br /&gt;
* Für jede natürliche Zahl &amp;#039;&amp;#039;k&amp;#039;&amp;#039; existiert höchstens ein Binomial-Baum der Ordnung &amp;#039;&amp;#039;k&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Binomial-heap-13.svg|miniatur|Beispiel eines Binomial-Heaps mit 13 Elementen. Die Schlüssel der Väter sind höchstens so groß wie die Schlüssel ihrer Kinder.]]&lt;br /&gt;
&lt;br /&gt;
Die erste Eigenschaft gewährleistet, dass die Wurzel jedes Baumes ein Element mit kleinstem Schlüssel im Baum trägt. Zusammen mit der Eigenschaft, dass ein Binomial-Baum der Ordnung &amp;#039;&amp;#039;k&amp;#039;&amp;#039; genau 2&amp;lt;sup&amp;gt;&amp;#039;&amp;#039;k&amp;#039;&amp;#039;&amp;lt;/sup&amp;gt; Knoten besitzt, stellt die zweite Eigenschaft sicher, dass für einen Binomial-Heap mit &amp;#039;&amp;#039;n&amp;#039;&amp;#039; Elementen exakt festgelegt ist, wie viele Bäume der Heap besitzt und welche Ordnung diese besitzen.&lt;br /&gt;
&lt;br /&gt;
Dies ist durch die [[Binärdarstellung]] von &amp;#039;&amp;#039;n&amp;#039;&amp;#039; festgelegt. Werden die Ziffern von rechts nach links mit 0 beginnend durchnummeriert, so existiert ein Baum der Ordnung &amp;#039;&amp;#039;k&amp;#039;&amp;#039; genau dann, wenn in der Binärdarstellung an der Stelle &amp;#039;&amp;#039;k&amp;#039;&amp;#039; eine 1 steht. Dies bedeutet auch, dass ein Heap mit &amp;#039;&amp;#039;n&amp;#039;&amp;#039; Elementen höchstens log&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;(&amp;#039;&amp;#039;n&amp;#039;&amp;#039;+1) Binomial-Bäume enthält. Ein Binomial-Heap mit 13=1101&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; Elementen besitzt beispielsweise genau einen Baum der Ordnung 3, einen Baum der Ordnung 2 und einen Baum der Ordnung 0.&lt;br /&gt;
&lt;br /&gt;
Die Menge der Binomial-Bäume wird als (nach der Ordnung der Bäume) sortierte [[Liste (Datenstruktur)|Liste]] der Wurzeln dieser Bäume implementiert. Ein Binomial-Heap besitzt im Gegensatz zum Binär-Heap nicht eine einzige Wurzel, sondern mehrere. Diese werden als &amp;#039;&amp;#039;Wurzelliste&amp;#039;&amp;#039; bezeichnet. Dadurch erhöht sich die Laufzeit für das Finden des Minimums auf &amp;#039;&amp;#039;O&amp;#039;&amp;#039;(log &amp;#039;&amp;#039;n&amp;#039;&amp;#039;), da alle Elemente der Wurzelliste durchsucht werden müssen.&lt;br /&gt;
&lt;br /&gt;
== Implementierung der Operationen ==&lt;br /&gt;
&lt;br /&gt;
=== Verschmelzen zweier Heaps &amp;#039;&amp;#039;(merge)&amp;#039;&amp;#039; ===&lt;br /&gt;
[[Datei:Binomial heap merge1.svg|links|mini|Verschmelzen zweier Binomialbäume von Grad 2: Vergleiche die Wurzeln und füge dem Baum mit kleinerer Wurzel (grau) den anderen Baum (schwarz) als linken Teilbaum hinzu. Am Ende erhält man so den unteren Baum mit Grad 3.]]&lt;br /&gt;
&lt;br /&gt;
Die zentrale Operation ist das Verschmelzen zweier Heaps &amp;#039;&amp;#039;(merge)&amp;#039;&amp;#039;, da diese als [[Unterprogramm]] aller anderen Operationen verwendet wird. Die Operation erfolgt ähnlich der [[Dualsystem#Grundrechenarten im Dualsystem|bitweisen Addition]] von [[Dualzahl]]en. In diesem Fall entspricht dies der [[Addition]] der Anzahl der Elemente &amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; und &amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; der zu verschmelzenden Heaps.&lt;br /&gt;
&lt;br /&gt;
Dazu werden simultan die Listen der beiden Heaps beginnend bei den Bäumen niedrigster Ordnung durchlaufen. In einer speziellen [[Variable (Programmierung)|Variablen]] wird – ähnlich der bitweisen Addition – ggf. ein Übertrag (in Form eines Baumes) festgehalten. Anfangs ist dieser Übertrag leer.&lt;br /&gt;
&lt;br /&gt;
Sei nun &amp;#039;&amp;#039;x&amp;#039;&amp;#039; die höchste Binärstelle von &amp;lt;math&amp;gt;n_1+n_2&amp;lt;/math&amp;gt; verschieden von 0, das heißt &amp;lt;math&amp;gt;x=\log_2(n_1+n_2+1)-1&amp;lt;/math&amp;gt;. Zu jeder natürlichen Zahl &amp;#039;&amp;#039;k&amp;#039;&amp;#039; mit &amp;lt;math&amp;gt;0\leq k\leq x&amp;lt;/math&amp;gt; wird nun in aufsteigender Reihenfolge die Anzahl der Bäume mit Ordnung &amp;#039;&amp;#039;k&amp;#039;&amp;#039; in beiden Heaps und in der Übertragsvariablen betrachtet. Ist diese&lt;br /&gt;
&lt;br /&gt;
* 0, so passiert nichts.&lt;br /&gt;
* 1, so wird der entsprechende Baum in den neuen Heap übernommen und der Übertrag ggf. geleert.&lt;br /&gt;
* 2, so wird der Baum, dessen Schlüssel an der Wurzel größer ist, zum am weitesten links stehenden Kind des anderen Baumes gemacht und der so entstehende Baum der Ordnung &amp;#039;&amp;#039;k&amp;#039;&amp;#039;+1 als Übertrag behalten.&lt;br /&gt;
* 3, so wird der Baum aus dem Übertrag in den neuen Heap übernommen und von den beiden Bäumen in den Heaps wird der Baum, dessen Schlüssel an der Wurzel größer ist zum am weitesten links stehenden Kind des anderen Baumes gemacht und der so entstehende Baum der Ordnung &amp;#039;&amp;#039;k&amp;#039;&amp;#039;+1 als Übertrag behalten.&lt;br /&gt;
&lt;br /&gt;
Jeder dieser Schritte lässt sich in konstanter Zeit durchführen. Da maximal &amp;lt;math&amp;gt;\log_2(n_1+n_2+1)&amp;lt;/math&amp;gt; derartige Schritte getätigt werden, benötigt die Operation im [[Worst Case|schlimmsten Fall]] nur [[Logarithmus|logarithmisch]] viel Zeit.&lt;br /&gt;
&lt;br /&gt;
=== Entfernen eines Elementes &amp;#039;&amp;#039;(remove)&amp;#039;&amp;#039; ===&lt;br /&gt;
[[Datei:Binomial-heap-split.svg|mini|Aufspalten eines Binomial-Baumes mittels &amp;#039;&amp;#039;split&amp;#039;&amp;#039;. Dreiecke symbolisieren die neuen Teilbäume. Die Beschriftung der Knoten bezeichnet deren Ordnung vor beziehungsweise nach dem Aufspalten. Es gilt &amp;#039;&amp;#039;k&amp;#039;&amp;#039;&amp;gt;&amp;#039;&amp;#039;a&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;&amp;gt;&amp;#039;&amp;#039;a&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;&amp;gt;...&amp;gt;&amp;#039;&amp;#039;a&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;=&amp;#039;&amp;#039;x&amp;#039;&amp;#039;, wobei &amp;#039;&amp;#039;i&amp;#039;&amp;#039;+1 die Tiefe von Knoten &amp;#039;&amp;#039;X&amp;#039;&amp;#039; im Baum ist.]]&lt;br /&gt;
&lt;br /&gt;
Neben &amp;#039;&amp;#039;merge&amp;#039;&amp;#039; ist das Entfernen eines Elementes &amp;#039;&amp;#039;(remove)&amp;#039;&amp;#039; die anspruchsvollste Operation. Sei &amp;#039;&amp;#039;X&amp;#039;&amp;#039; das zu entfernende Element, seine Ordnung &amp;#039;&amp;#039;x&amp;#039;&amp;#039; und &amp;#039;&amp;#039;T&amp;#039;&amp;#039; der Binomial-Baum, der dieses Element enthält und dessen Ordnung &amp;#039;&amp;#039;k&amp;#039;&amp;#039; beträgt. Ausgehend von &amp;#039;&amp;#039;X&amp;#039;&amp;#039; muss der Binomial-Baum, der das Element enthält, geeignet in kleinere Binomial-Bäume aufgespalten werden. Dieses Aufspalten des Baumes geschieht am einfachsten mit einer [[Rekursive Programmierung|rekursiven Funktion]] &amp;#039;&amp;#039;split&amp;#039;&amp;#039;, der als Argument ein Knoten im Baum übergeben wird. Anfangs ist &amp;#039;&amp;#039;X&amp;#039;&amp;#039; selbst das Argument. Sofern das übergebene Argument einen Elternknoten besitzt, ruft sich die Funktion zuerst selbst mit diesem als Argument auf und entfernt anschließend solange das am weitesten links stehende Kind des Vaters – also das Kind mit höchster Ordnung – bis das Argument selbst aus dem Baum entfernt wurde.&lt;br /&gt;
&lt;br /&gt;
Da das Entfernen des am weitesten links stehenden Elementes gerade die umgekehrte Operation zum oben dargestellten rekursiven Aufbau der Binomial-Bäume darstellt, sind die so abgespaltenen Bäume und der Rest weiterhin Binomial-Bäume. Ferner ist &amp;#039;&amp;#039;X&amp;#039;&amp;#039; nun Wurzel eines Baumes und es lässt sich zeigen, dass der ursprüngliche Baum nun in genau 2 Binomial-Bäume der Ordnung &amp;#039;&amp;#039;x&amp;#039;&amp;#039; sowie in jeweils einen Binomial-Baum der Ordnung &amp;#039;&amp;#039;x&amp;#039;&amp;#039;+1, &amp;#039;&amp;#039;x&amp;#039;&amp;#039;+2, ..., &amp;#039;&amp;#039;k-1&amp;#039;&amp;#039; zerfallen ist. Werden nun noch in gleicher Weise alle Kinder von &amp;#039;&amp;#039;X&amp;#039;&amp;#039; entfernt, so ist &amp;#039;&amp;#039;X&amp;#039;&amp;#039; vollständig isoliert und kann problemlos gelöscht werden. Dabei entsteht aus den Kindern für jedes &amp;#039;&amp;#039;j&amp;#039;&amp;#039; in {0, ..., &amp;#039;&amp;#039;x&amp;#039;&amp;#039;-1} jeweils genau ein Binomial-Baum der Ordnung &amp;#039;&amp;#039;j&amp;#039;&amp;#039;. Insgesamt bleibt also für jedes &amp;#039;&amp;#039;j&amp;#039;&amp;#039; aus {0, ..., &amp;#039;&amp;#039;k&amp;#039;&amp;#039;-1} ein Binomial-Baum der Ordnung &amp;#039;&amp;#039;j&amp;#039;&amp;#039; übrig. Diese Bäume bilden zusammen wieder einen Binomial-Heap, der mittels &amp;#039;&amp;#039;merge&amp;#039;&amp;#039; mit dem Rest des Heaps verschmolzen werden kann.&lt;br /&gt;
&lt;br /&gt;
Das Abspalten des am weitesten links stehenden Elementes ist in konstanter Zeit möglich. Da der ursprüngliche Baum genau &amp;#039;&amp;#039;k&amp;#039;&amp;#039; mal aufgespalten wird, der Binomial-Heap aber mindestens 2&amp;lt;sup&amp;gt;&amp;#039;&amp;#039;k&amp;#039;&amp;#039;&amp;lt;/sup&amp;gt; Elemente enthält, benötigt diese Operation im Worst-Case nur logarithmisch viel Zeit. Da das anschließende &amp;#039;&amp;#039;merge&amp;#039;&amp;#039; selbst auch nur logarithmisch viel Zeit benötigt ist auch die Gesamtlaufzeit im schlimmsten Fall logarithmisch zur Anzahl der Elemente im Heap.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Operationen ===&lt;br /&gt;
Die übrigen Operationen gestalten sich nun sehr einfach.&lt;br /&gt;
&lt;br /&gt;
* Um ein neues Element einzufügen &amp;#039;&amp;#039;(insert)&amp;#039;&amp;#039;, wird einfach ein neuer Heap erzeugt, der nur dieses eine Element enthält und dieser mittels &amp;#039;&amp;#039;merge&amp;#039;&amp;#039; mit dem eigentlichen Heap verschmolzen.&lt;br /&gt;
* Um ein Element mit minimalem Schlüssel zu entnehmen &amp;#039;&amp;#039;(extractMin)&amp;#039;&amp;#039;, braucht lediglich das Minimum der Wurzeln gefunden zu werden, indem die Liste der Wurzeln einmal durchlaufen wird und das gefundene Element mit &amp;#039;&amp;#039;remove&amp;#039;&amp;#039; entfernt und zurückgegeben wird.&lt;br /&gt;
* Um den Schlüssel eines Elementes zu verändern &amp;#039;&amp;#039;(changeKey)&amp;#039;&amp;#039; wird dieses mit &amp;#039;&amp;#039;remove&amp;#039;&amp;#039; zunächst entfernt, dann dessen Schlüssel geändert und anschließend mit &amp;#039;&amp;#039;insert&amp;#039;&amp;#039; wieder eingefügt.&lt;br /&gt;
&lt;br /&gt;
== Bemerkungen ==&lt;br /&gt;
Die Operationen &amp;#039;&amp;#039;remove&amp;#039;&amp;#039; und &amp;#039;&amp;#039;changeKey&amp;#039;&amp;#039; setzen voraus, dass die Position der entsprechenden Elemente im Heap bekannt ist. Im Allgemeinen ist es nämlich nicht möglich, effizient ein Element im Heap zu suchen. Daher muss die Operation &amp;#039;&amp;#039;insert&amp;#039;&amp;#039; einen [[Zeiger (Informatik)|Zeiger]] auf den Behälter für das eingefügte Element zurückliefern, den sich das aufrufende Programm im Bedarfsfall an geeigneter Stelle merkt.&lt;br /&gt;
&lt;br /&gt;
Zu der hier dargestellten Implementierung gibt es noch eine Alternative. Diese gestattet aber nur das Verringern des Schlüssels eines Elementes. Entsprechend heißt die Operation dann nicht &amp;#039;&amp;#039;changeKey&amp;#039;&amp;#039;, sondern &amp;#039;&amp;#039;decreaseKey&amp;#039;&amp;#039;. Dabei wird statt &amp;#039;&amp;#039;remove&amp;#039;&amp;#039; die Operation &amp;#039;&amp;#039;decreaseKey&amp;#039;&amp;#039; direkt implementiert. Diese tauscht den Schlüssel einfach aus und stellt die Heap-Bedingung dadurch wieder her, dass Element und Schlüssel in den tragenden Behältern solange mit denen des Vaters getauscht werden, bis die Heap-Bedingung wieder erfüllt ist. Die Operation &amp;#039;&amp;#039;remove&amp;#039;&amp;#039; wird dann so implementiert, dass mit &amp;#039;&amp;#039;decreaseKey&amp;#039;&amp;#039; der Schlüssel des Elementes quasi unendlich klein gemacht wird, so dass das Element an die Wurzel seines Binomial-Baumes wandert. Anschließend können die Kinder der neuen Wurzel entfernt und mit &amp;#039;&amp;#039;merge&amp;#039;&amp;#039; wieder in den Baum eingefügt werden.&lt;br /&gt;
&lt;br /&gt;
Problematisch an diesem Verfahren ist, dass nach einem &amp;#039;&amp;#039;decreaseKey&amp;#039;&amp;#039; die Zuordnung der Elemente zu ihren Behältern nicht mehr stimmt. Die Änderungen müssen dem aufrufenden Programm also noch irgendwie mitgeteilt werden.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* {{BibISBN|3486275151}}&lt;br /&gt;
* Jean Vuillemin: &amp;#039;&amp;#039;A data structure for manipulating priority queues&amp;#039;&amp;#039;. &amp;#039;&amp;#039;Communications of the ACM&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;21&amp;#039;&amp;#039;&amp;#039;, 1978, S. 309–314.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* {{Internetquelle |url=https://www.eecs.yorku.ca/~aaw/legacy/Sotirios/BinomialHeap.html |titel=Simulation eines Binomial-Heaps |zugriff=2022-07-30}} ([[Java-Applet]], englisch)&lt;br /&gt;
* {{Internetquelle |url=http://olli.informatik.uni-oldenburg.de/BHeapA/Deutsch/Algorithmus.html |archiv-url=https://web.archive.org/web/20160313030913/http://olli.informatik.uni-oldenburg.de/BHeapA/Deutsch/Algorithmus.html |archiv-datum=2016-03-13 |zugriff=2022-07-30 |titel=Der Binomial Heap Algorithmus |titelerg=Lernprogramm zum Binomial Heap mit Animationen und interaktiven Aufgaben}} ([[Universität Oldenburg]])&lt;br /&gt;
&lt;br /&gt;
{{Lesenswert|18. August 2005|8600444}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Datenstruktur]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Attraktor</name></author>
	</entry>
</feed>