Ich frage mich nur, ob jemand in der Lage sein könnte, die Definition eines ausgeglichenen Baumes für mich zu klären. Ich habe das "ein Baum ist ausgeglichen, wenn jeder Teilbaum ausgeglichen ist und sich die Höhe der beiden Teilbäume um höchstens einen unterscheidet.
Ich entschuldige mich, wenn dies eine dumme Frage ist, aber gilt diese Definition für jeden Knoten bis hinunter zu den Blättern eines Baumes oder nur für die linken und rechten Teilbäume unmittelbar vor der Wurzel? Ich denke, eine andere Möglichkeit, dies zu erfassen, wäre: Ist es möglich, dass interne Knoten eines Baums nicht ausgeglichen sind und der gesamte Baum ausgeglichen bleibt?
Antworten:
Die Einschränkung wird im Allgemeinen rekursiv auf jeden Teilbaum angewendet. Das heißt, der Baum ist nur ausgeglichen, wenn:
Demnach ist der nächste Baum ausgeglichen:
Der nächste ist nicht ausgeglichen, da sich die Teilbäume von C in ihrer Höhe um 2 unterscheiden:
Die spezifische Einschränkung des ersten Punkts hängt jedoch von der Art des Baums ab. Die oben aufgeführte ist die typische für AVL-Bäume .
Rot-schwarze Bäume zum Beispiel erzwingen eine weichere Einschränkung.
quelle
Es gibt verschiedene Möglichkeiten, "Balanced" zu definieren. Das Hauptziel ist es, die Tiefe aller Knoten beizubehalten
O(log(n))
.Es scheint mir, dass die Gleichgewichtsbedingung, über die Sie gesprochen haben, für den AVL-Baum gilt .
Hier ist die formale Definition der Gleichgewichtsbedingung des AVL-Baums :
Nächste Frage, was ist " Höhe "?
Es gibt einen seltsamen, aber häufigen Fall:
Das linke Kind von root ist beispielsweise
null
:Zwei weitere Beispiele zur Bestimmung:
Ja, ein ausgeglichener Baum Beispiel:
Nein, kein ausgeglichener Baum Beispiel:
quelle
Es gibt keinen Unterschied zwischen diesen beiden Dingen. Denk darüber nach.
Nehmen wir eine einfachere Definition: "Eine positive Zahl ist gerade, wenn sie Null ist, oder diese Zahl minus zwei ist gerade." Sagt dies, dass 8 gerade ist, wenn 6 gerade ist? Oder heißt das, dass 8 gerade ist, wenn 6, 4, 2 und 0 gerade sind?
Es gibt keinen Unterschied. Wenn 8 gerade ist, wenn 6 gerade ist, heißt es auch, dass 6 gerade ist, wenn 4 gerade ist. Und so heißt es auch, dass 4 gerade ist, wenn 2 gerade ist. Und so heißt es, dass 2 gerade ist, wenn 0 gerade ist. Wenn also 8 gerade ist, wenn 6 gerade ist, heißt es (indirekt), dass 8 gerade ist, wenn 6, 4, 2 und 0 gerade sind.
Hier ist es dasselbe. Jeder indirekte Teilbaum kann durch eine Kette direkter Teilbäume gefunden werden. Selbst wenn es nur direkt für direkte Teilbäume gilt, gilt es dennoch indirekt für alle Teilbäume (und damit für alle Knoten).
quelle
Der ausgeglichene Baum ist ein Baum, dessen Höhe in der Größenordnung des Protokolls liegt (Anzahl der Elemente im Baum).
Der Definition "ein Baum ist ausgeglichen von jedem Teilbaum ist ausgeglichen und die Höhe der beiden Teilbäume unterscheidet sich um höchstens einen" folgen AVL-Bäume.
Da AVL-Bäume ausgeglichen sind, aber nicht alle ausgeglichenen Bäume AVL-Bäume sind, halten ausgeglichene Bäume diese Definition nicht und interne Knoten können in ihnen unausgeglichen sein. Für AVL-Bäume müssen jedoch alle internen Knoten ausgeglichen sein.
quelle
Das Ziel eines ausgeglichenen Baumes ist es, das Blatt in einem Minimum an Durchquerung (minimale Höhe) zu erreichen. Der Grad des Baums ist die Anzahl der Zweige minus 1. Ein ausgeglichener Baum ist möglicherweise nicht binär.
quelle
quelle