„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Rotationen implementieren

Rotationen implementieren

Veröffentlicht am 01.08.2024
Durchsuche:665

Ein unausgeglichener Baum wird ausgeglichen, indem eine entsprechende Rotationsoperation ausgeführt wird. Im Abschnitt „Bäume neu ausbalancieren“ wurde erläutert, wie Rotationen an einem Knoten durchgeführt werden. Der folgende Code gibt den Algorithmus für die LL-Rotation an, wie in der Abbildung unten dargestellt.

1 balanceLL(TreeNode A, TreeNode parentOfA) {
2 Sei B das linke Kind von A.
3
4 if (A ist die Wurzel)
5 Sei B die neue Wurzel
6 sonst {
7 if (A ist ein linkes Kind von parentOfA)
8 Sei B ein linkes Kind von parentOfA;
9 sonst
10 Sei B ein rechtes Kind von parentOfA;
11 }
12
13 Machen Sie T2 zum linken Teilbaum von A, indem Sie B.right zu A.left;
zuweisen 14 Machen Sie A zum rechten Kind von B, indem Sie A B zuordnen.right;
15 Aktualisieren Sie die Höhe von Knoten A und Knoten B;
16 } // Ende der Methode

Implementing Rotations

Beachten Sie, dass die Höhe der Knoten A und B geändert werden kann, die Höhen anderer Knoten im Baum jedoch nicht geändert werden. Sie können die RR-, LR- und RL-Rotationen auf ähnliche Weise implementieren.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/paulike/implementing-rotations-m91?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3