問題出在這裏:x展開後的子樹在展開操作後是否必須平衡?
設T是n個節點上的一個splay樹,設x是T的一個節點。考慮x處的splay操作。在x下的子樹是否必須平衡(即,在splay操作之後,在splay樹中以x爲根的子樹的高度變爲O(logn)?
我花了很多時間,但仍然感到沮喪。 ..我欣賞你的答案
問題出在這裏:x展開後的子樹在展開操作後是否必須平衡?
設T是n個節點上的一個splay樹,設x是T的一個節點。考慮x處的splay操作。在x下的子樹是否必須平衡(即,在splay操作之後,在splay樹中以x爲根的子樹的高度變爲O(logn)?
我花了很多時間,但仍然感到沮喪。 ..我欣賞你的答案
號考慮絕對的最壞情況,其中T看起來是這樣的:。
y
\
y
\
...
\
x
其中y
s爲任意節點一旦張開x
,樹會看像這樣:
x
/
y
\
y
/\
y y
/\
y y
/\
y ...
\
y
(同樣,y
s爲任意節點)。在這種情況下,深度仍然是O(n)
。
編輯:意識到我搞砸了「後」樹,所以用更正確的例子更新我的答案。
謝謝。丹尼斯。這很有幫助。因此,張開手術後,T應該是這樣的: X / Ÿ \ Ÿ /\ Y Y / Y ... 這是不均衡的,對不對? –
評論不是嘗試繪製樹的最佳地點。我在回答中添加了「之前」和「之後」,以便它們對我們兩個人都可見。 –
@BiWu關於這個例子,你試圖給出被拒絕的編輯;再試一次較長的樹;你會看到模式。 –
否參見these notes。遍歷節點的平均深度減半,但不能保證產生平衡樹。
如果您還有其他問題,您無法弄清楚您自己編輯某人的答案是不正確的。你總是可以提出另一個問題。 – dcaswell