問題は次のとおりです。
T を n ノード上のスプレイ ツリーとし、x を T のノードとする。x でのスプレイ操作を考える。x の下のサブツリーは必然的にバランスが取れますか (つまり、スプレイ ツリーの x をルートとするサブツリーの高さは、スプレイ操作後に O(logn) になりますか?
私はそれに多くの時間を費やしましたが、それでもイライラしています....あなたの答えに感謝します。
問題は次のとおりです。
T を n ノード上のスプレイ ツリーとし、x を T のノードとする。x でのスプレイ操作を考える。x の下のサブツリーは必然的にバランスが取れますか (つまり、スプレイ ツリーの x をルートとするサブツリーの高さは、スプレイ操作後に O(logn) になりますか?
私はそれに多くの時間を費やしましたが、それでもイライラしています....あなたの答えに感謝します。
いいえ。 T が次のような絶対的な最悪のケースを考えてみてください。
y
\
y
\
...
\
x
ここで、y
s は任意のノードです。スプレーx
すると、ツリーは次のようになります。
x
/
y
\
y
/ \
y y
/ \
y y
/ \
y ...
\
y
(ここでも、y
s を任意のノードとして)。その場合、深さはまだO(n)
この場合です。
編集:「後」ツリーを台無しにしたことに気付いたので、より正しい例で回答を更新しました。
いいえ。これらの注を参照してください。トラバースされたノードの平均的な深さは半分になりますが、バランスの取れたツリーが得られるとは限りません。