www.wikidata.de-de.nina.az
Ein Linksbaum oder Linksheap ist ein Binarbaum der als Vorrangwarteschlange benutzt werden kann Diese Datenstruktur ist eine Erfindung von Clark Allan Crane und nutzt eine Heapstruktur Linksbaume fordern im Gegensatz zu balancierten Binarbaumen nicht dass jeder Pfad hochstens logarithmische Lange hat Es genugt dass es von jedem Knoten einen logarithmisch langen Pfad zu einem Blatt gibt und dieser bekannt ist Linksbaume konnen effizient verschmolzen werden Inhaltsverzeichnis 1 Definition 2 Operationen 3 Algorithmen 3 1 Verschmelzen merge 3 2 Einfugen insert 3 3 Extrahieren des nachsten Elements extractMin 4 Laufzeit 5 LiteraturDefinition BearbeitenEin Linksbaum ist definiert uber eine Menge von total geordneten Schlusseln Die auf den Schlusseln definierte Ordnung bestimmt die Prioritat eines Schlussels Ein Knoten mit Distanz 0 und einem Schlussel minimaler Prioritat ist ein Linksbaum Ein Knoten mit zwei Linksbaumen als Kinder ist ein Linksbaum falls Sein Schlussel mindestens so hohe Prioritat hat wie die Schlussel seiner Kinder Heap Eigenschaft Das linke Kind mindestens so grosse Distanz hat wie das rechte Kind Seine Distanz um genau 1 grosser ist als die Distanz des rechten Kindes Die Definition impliziert dass die Distanz die Lange des kurzesten Pfades zu einem Blatt misst Folgt man in einem Linksbaum immer dem rechten Kind so geht man einen solchen kurzesten Pfad Operationen BearbeitenEin Linksbaum mit n Schlusseln unterstutzt die folgenden Operationen garantiert in O log n Zeit insert zum Einfugen eines Elementes extractMin zur Ruckgabe und zum Entfernen eines Elementes mit hochster Prioritat und merge zum Verschmelzen zweier Heaps Algorithmen BearbeitenMerke dass hier ein Knoten mit Distanz 0 einen leeren Linksbaum darstellt In einer Implementierung wird ein solcher fur gewohnlich als null Zeiger dargestellt Verschmelzen merge Bearbeiten Diese Operation soll zwei Linksbaume zu einem neuen Linksbaum verschmelzen Sei K der Baum mit kleinerer Prioritat und G der Baum mit grosserer Prioritat haben sie die gleiche Prioritat entscheide beliebig Das Verfahren kann dann rekursiv wie folgt beschrieben werden Falls beide Baume Distanz 0 haben gebe sofort G zuruck und uberspringe die folgenden Schritte Falls G ein rechtes Kind mit Distanz 0 hat setze K als rechtes Kind von G Ansonsten verschmelze das rechte Kind von G mit K und setze den resultierenden Baum als rechtes Kind von G Falls nach Schritt 2 das rechte Kind von G grossere Distanz hat als das linke Kind von G vertausche die beiden Kinder Die neue Wurzel ist G Die Distanz der neuen Wurzel ist 1 plus die Distanz des rechten Kindes Die Schritte garantieren nacheinander die Eigenschaften die in der Definition verlangt wurden fur den resultierenden Linksbaum Einfugen insert Bearbeiten Um einen neuen Schlussel einzufugen schaffe einen neuen Knoten mit dem gewunschten Schlussel und verschmelze den so neu entstandenen Linksbaum mit dem alten Baum Der neu geschaffene Knoten soll vor dem verschmelzen zwei Linksbaume mit Distanz 0 als Kinder haben Extrahieren des nachsten Elements extractMin Bearbeiten Wegen der Heap Eigenschaft ist der Schlussel mit hochster Prioritat jeweils an der Wurzel und er kann also direkt abgelesen werden Die Kinder der Wurzel werden verschmolzen und das Resultat als neue Wurzel gesetzt Diese Operation ist nur gultig falls die Wurzel mindestens Distanz 1 hat Laufzeit BearbeitenDas Verschmelzen von zwei Linksbaumen mit insgesamt n Knoten mittels merge benotigt hochstens O log n Zeit In jedem Schritt der Rekursion wird konstant viel Arbeit verrichtet Jeder rekursive Aufruf erfolgt auf Baumen deren Distanzen in der Summe um genau eins kurzer sind Die Rekursion endet spatestens wenn die Summe der Distanzen eins ist Also ist die Laufzeit beschrankt durch die Summe der Distanzen Da die Distanzen wegen der Definition von Linksbaumen die Lange des kurzesten Pfades bezeichnen und die Lange des kurzesten Pfades in einem binaren Baum mit k Knoten hochstens log 2 k 1 ist folgt die Schranke Die Laufzeit fur insert und extractMin ist beschrankt durch eine Konstante plus die Zeit um zwei Linksbaume zu verschmelzen Literatur BearbeitenThomas Ottman Peter Widmayer Algorithmen und Datenstrukturen 4 Auflage Spektrum Akademischer Verlag Heidelberg Berlin 2002 ISBN 978 3 8274 1029 0 Kapitel 6 1 Abgerufen von https de wikipedia org w index php title Linksbaum amp oldid 222980852