2011-01-04 5 views
4

Ich habe versucht, mein Gehirn darum zu wickeln, wie man Code für die Rotation des Binärbaums schreibt. Ich schaute auf http://en.wikipedia.org/wiki/Tree_rotation und enfuzzled.com Ich habe dies für 2 Stunden angeguckt und habe es mehrmals früher angeschaut. Ich sehe immer noch Probleme in dem Wikipedia-Artikel und kann den anderen nicht vollständig verstehen, z.Code mit Erklärung für binäre Baumrotation (links ODER rechts)

Diese beiden Linien in der Wikipedia-Artikel erwähnt, kann auf einmal nicht wahr sein

Sei P Q linke Kind sein. Setzen Sie P als neuen Root.

Kann jemand bitte helfen? Vielen Dank

+0

Dieser Artikel ist eine Art formale Beschreibung. Artikel über tatsächliche ausgeglichene Baumrotation ist leichter zu lesen, wie zum Beispiel: http://en.wikipedia.org/wiki/Red-black_tree – 9dan

+0

Danke. Dieser Artikel hat auch keinen Code für die Rotation. Ich finde es sehr schwer, Code zu finden. Ich habe viele Kurse im Internet gescannt und überall (wie in meiner Alma Mater) die Konzepte, aber nicht den Code. Der Code dafür kann ziemlich schwierig sein und nach mehreren Iterationen suche ich nach einer Anleitung – user560871

Antwort

1

„Sei P Q linkes Kind sein. Set P die neue Wurzel zu sein.“ Im Grunde genommen das ist die Beschreibung der Drehung nach rechts oder im Uhrzeigersinn:

Q  P 
/ => \ 
P   Q 
+0

Hoppla. Vielen Dank. Ich starrte das wieder an und jetzt verstehe ich. Also ist die erste Anweisung Let P be Q's linkes Kind ein Versuch, das Symbol im Originalbaum zu reparieren. Ich denke weiter, dass P das linke Kind von Q in dem neuen Baum ist. Es tut mir leid, ich bin wirklich dumm. Danke nochmal – user560871

+1

Nichts für. BTW, dumme Leute erkennen nicht wirklich, dass die dumm sind :) – Schultz9999

0

Hier ist die LINKE-DREHEN in meiner Ausgabe des Corman Buch

LEFT-ROTATE algorithm for BST

Verwandte Themen