B+ TREE: Suchen, Einfügen und Löschen OperaBeispiel (2024)

By: Alyssa Walker

Aktualisiert

Was ist ein B+-Baum?

A B+ Baum ist primariWird häufig zur Implementierung einer dynamischen Indizierung auf mehreren Ebenen verwendet. Im Vergleich zum B-Baum speichert der B+-Baum die Datenzeiger nur an den Blattknoten des Baums, wodurch der Suchvorgang präziser und schneller wird.

Regeln für B+-Baum

Hier sind wesentliche Regeln für B+ Tree.

  • Blätter dienen der Speicherung von Datensätzen.
  • Es wird in den internen Knoten des Baums gespeichert.
  • Sollten Sie jetzt aufgefordert werden, ein target Wenn der Schlüsselwert kleiner als der interne Knoten ist, wird dem Punkt direkt links davon gefolgt.
  • Sollten Sie jetzt aufgefordert werden, ein target Der Schlüsselwert ist größer oder gleich dem internen Knoten, dann wird dem Punkt direkt rechts davon gefolgt.
  • Die Wurzel hat mindestens zwei Kinder.

Warum B+ Tree verwenden?

Hier sind Gründe für die Verwendung von B+ Tree:

  • Schlüssel sind PrimariWird häufig verwendet, um die Suche zu erleichtern, indem auf das richtige Blatt verwiesen wird.
  • B+ Tree verwendet einen „Füllfaktor“, um die Zunahme und Abnahme in einem Baum zu verwalten.
  • In B+-Bäumen können zahlreiche Schlüssel problemlos auf der Speicherseite platziert werden, da sie nicht über die mit den inneren Knoten verknüpften Daten verfügen. Daher kann schnell auf Baumdaten zugegriffen werden, die sich auf dem Blattknoten befinden.
  • Ein umfassender vollständiger Scan aller Elemente ist ein Baum, der nur einen linearen Durchgang benötigt, da alle Blattknoten eines B+-Baums miteinander verknüpft sind.

B+-Baum vs. B-Baum

Hier sind die Hauptunterschiede zwischen B+ Tree und B Tree

B+ BaumB Baum
Suchschlüssel können wiederholt werden.Suchschlüssel dürfen nicht redundant sein.
Daten werden nur auf den Blattknoten gespeichert.Sowohl Blattknoten als auch interne Knoten können Daten speichern
Auf dem Blattknoten gespeicherte Daten machen die Suche genauer und schneller.Searching ist aufgrund der auf Leaf und internen Knoten gespeicherten Daten langsam.
Das Löschen ist nicht schwierig, da ein Element nur aus einem Blattknoten entfernt wird.Das Löschen von Elementen ist ein komplizierter und zeitaufwändiger Vorgang.
Verknüpfte Blattknoten machen die Suche effizient und schnell.Blattknoten können nicht verknüpft werden.

Suche OperaProduktion

In B+ Tree ist eine Suche eines der am einfachsten durchzuführenden Verfahren, mit der man schnelle und genaue Ergebnisse erhält.

Die folgendenwing Suchalgorithmus ist anwendbar:

  • Um den erforderlichen Datensatz zu finden, müssen Sie Folgendes ausführen binäre Suche auf die verfügbaren Datensätze im Baum.
  • Bei einer genauen Übereinstimmung mit dem Suchschlüssel wird der entsprechende Datensatz an den Benutzer zurückgegeben.
  • Falls der genaue Schlüssel bei der Suche im übergeordneten, aktuellen oder Blattknoten nicht gefunden wird, wird die Meldung „Nicht gefunden“ angezeigtyed für den Benutzer.
  • Für bessere und genauere Ergebnisse kann der Suchvorgang erneut ausgeführt werden.

Suche Operationsalgorithmus

 1. Call the binary search method on the records in the B+ Tree. 2. If the search parameters match the exact key The accurate result is returned and displayed to the user Else, if the node being searched is the current and the exact key is not found by the algorithm Display the statement "Recordset cannot be found."

Output:

Der übereinstimmende Datensatz mit dem genauen Schlüssel wird angezeigtyed an den Benutzer; anderewise, wird dem Benutzer ein fehlgeschlagener Versuch angezeigt.

Insert OperaProduktion

Die folgendenwing Der Algorithmus ist für die Einfügung anwendbar operation:

  • 50 Prozent der Elemente in den Knoten werden zur Speicherung in ein neues Blatt verschoben.
  • Das übergeordnete Element des neuen Blatts wird genau mit dem minimalen Schlüsselwert und einer neuen Position im Baum verknüpft.
  • Teilen Sie den übergeordneten Knoten in mehrere Standorte auf, falls er vollständig ausgelastet ist.
  • Um bessere Ergebnisse zu erzielen, wird der mittlere Schlüssel nun mit dem Knoten der obersten Ebene dieses Blatts verknüpft.
  • Wiederholen Sie den in den obigen Schritten erläuterten Prozess, bis der Knoten der obersten Ebene nicht gefunden wird.

Insert Operationsalgorithmus

1.Even inserting at-least 1 entry into the leaf container does not make it full then add the record 2. Else, divide the node into more locations to fit more records. a. Assign a new leaf and transfer 50 percent of the node elements to a new placement in the tree b. The minimum key of the binary tree leaf and its new key address are associated with the top-level node. c. Divide the top-level node if it gets full of keys and addresses. i. Similarly, insert a key in the center of the top-level node in the hierarchy of the Tree. d. Continue to execute the above steps until a top-level node is found that does not need to be divided anymore. 3) Build a new top-level root node of 1 Key and 2 indicators. 

Output:

Der Algorithmus ermittelt das Element und fügt es erfolgreich in den erforderlichen Blattknoten ein.

Das obige B+-Baum-Beispiel wird in den folgenden Schritten erklärt:

  • Erstens haben wir drei Knoten, und die ersten drei Elemente, nämlich 3, 3 und 1, werden an den entsprechenden Stellen in den Knoten hinzugefügt.
  • Der nächste Wert in der Datenreihe ist 12, der in den Baum aufgenommen werden muss.
  • Um dies zu erreichen, teilen Sie den Knoten und fügen Sie 6 als Zeigerelement hinzu.
  • Nun wird eine rechte Hierarchie eines Baums erstellt und die verbleibenden Datenwerte werden entsprechend angepasst, indem die geltenden Regeln für Gleich- oder Größer-Werte für die Schlüsselwertknoten auf der rechten Seite berücksichtigt werden.

Löschen OperaProduktion

Die complexDie Funktionalität des Löschvorgangs im B+-Baum übertrifft die der Einfüge- und Suchfunktionalität.

Die folgendenwing Der Algorithmus ist beim Löschen eines Elements aus dem B+-Baum anwendbar:

  • Zuerst müssen wir einen Blatteintrag im Baum finden, der den Schlüssel und den Zeiger enthält. , löschen Sie den Blatteintrag aus dem Baum, wenn das Blatt die genauen Bedingungen für das Löschen von Datensätzen erfüllt.
  • Falls der Blattknoten nur den zufriedenstellenden Faktor erfüllt, halb voll zu sein, dann operation ist abgeschlossen; anderewise, der Blattknoten hat Mindesteinträge und kann nicht gelöscht werden.
  • Die anderen verknüpften Knoten rechts und links können alle Einträge löschen und sie dann in das Blatt verschieben. Wenn diese Kriterien nicht erfüllt sind, sollten sie den Blattknoten und seinen verknüpften Knoten in der Baumhierarchie kombinieren.
  • Beim Zusammenführen des Blattknotens mit seinen Nachbarn auf der rechten oder linken Seite werden Einträge von Werten im Blattknoten oder im verknüpften Nachbarn, die auf den Knoten der obersten Ebene zeigen, gelöscht.

Das obige Beispiel veranschaulicht die Vorgehensweise zum Entfernen eines Elements aus dem B+-Baum einer bestimmten Reihenfolge.

  • Zunächst werden die genauen Positionen des zu löschenden Elements im Baum identifiziert.
  • Hier kann das zu löschende Element nur auf Blattebene und nicht an der Indexplatzierung genau identifiziert werden. Daher kann das Element gelöscht werden, ohne dass sich dies auf die Löschregeln auswirkt, bei denen es sich um den Wert des absoluten Mindestschlüssels handelt.

  • Im obigen Beispiel müssen wir 31 aus dem Baum löschen.
  • Wir müssen die Instanzen von 31 in Index und Leaf finden.
  • Wir können sehen, dass 31 sowohl auf Index- als auch auf Blattknotenebene verfügbar ist. Daher löschen wir es aus beiden Instanzen.
  • Aber wir müssen den Index so füllen, dass er auf 42 zeigt. Wir schauen uns nun das rechte Kind unter 25 an, nehmen den Mindestwert und platzieren ihn als Index. Da also 42 der einzige vorhandene Wert ist, wird er zum Index.

Löschen Operationsalgorithmus

1) Start at the root and go up to leaf node containing the key K2) Find the node n on the path from the root to the leaf node containing K A. If n is root, remove K a. if root has more than one key, done b. if root has only K i) if any of its child nodes can lend a node Borrow key from the child and adjust child links ii) Otherwise merge the children nodes. It will be a new root c. If n is an internal node, remove K i) If n has at least ceil(m/2) keys, done! ii) If n has less than ceil(m/2) keys, If a sibling can lend a key, Borrow key from the sibling and adjust keys in n and the parent node Adjust child links Else Merge n with its sibling Adjust child links d. If n is a leaf node, remove K i) If n has at least ceil(M/2) elements, done! In case the smallest key is deleted, push up the next key ii) If n has less than ceil(m/2) elements If the sibling can lend a key Borrow key from a sibling and adjust keys in n and its parent node Else Merge n and its sibling Adjust keys in the parent node

Output:

Der Schlüssel „K“ wird gelöscht und Schlüssel werden von Geschwistern ausgeliehen, um bei Bedarf Werte in n und seinen übergeordneten Knoten anzupassen.

Zusammenfassung

  • B+ Tree ist ein selbstausgleichender Baum Datenstruktur für eine präzise und schnellere Ausführungarching, Einfügen und Löschen von Prozeduren für Daten
  • Wir können problemlos vollständige Daten oder Teildaten abrufen, da die Verwendung der verknüpften Baumstruktur dies effizient macht.
  • Die B+-Baumstruktur wächst und schrumpft mit einer Zunahme/Abnahme der Anzahl der gespeicherten Datensätze.
  • Die Speicherung von Daten auf den Blattknoten und die anschließende Verzweigung interner Knoten verkürzt offensichtlich die Baumhöhe, was die Platteneingabe und -ausgabe verringert operaDadurch wird letztendlich deutlich weniger Platz auf den Speichergeräten benötigt.

Du magst vielleicht:

  • DAA-Tutorial PDF: Design und Analyse von Algorithms
  • Heap-Sortieralgorithmus (mit Code in Python und C++)
  • Kadence-Algorithmus: Größtes zusammenhängendes Subarray mit Summe
  • Radix-Sortieralgorithmus in der Datenstruktur
  • Doppelt verknüpfte Liste: C++, Python (Codebeispiel)
  • Einfach verknüpfte Liste in Datenstrukturen
  • Primfaktor-Algorithmus: C, Python-Beispiel
  • Tower of Hanoi-Algorithmus: Python, C++-Code
B+ TREE: Suchen, Einfügen und Löschen OperaBeispiel (2024)
Top Articles
Latest Posts
Article information

Author: Zonia Mosciski DO

Last Updated:

Views: 6407

Rating: 4 / 5 (71 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Zonia Mosciski DO

Birthday: 1996-05-16

Address: Suite 228 919 Deana Ford, Lake Meridithberg, NE 60017-4257

Phone: +2613987384138

Job: Chief Retail Officer

Hobby: Tai chi, Dowsing, Poi, Letterboxing, Watching movies, Video gaming, Singing

Introduction: My name is Zonia Mosciski DO, I am a enchanting, joyous, lovely, successful, hilarious, tender, outstanding person who loves writing and wants to share my knowledge and understanding with you.