2013-10-17 11 views
1

問題出在這裏:x展開後的子樹在展開操作後是否必須平衡?

設T是n個節點上的一個splay樹,設x是T的一個節點。考慮x處的splay操作。在x下的子樹是否必須平衡(即,在splay操作之後,在splay樹中以x爲根的子樹的高度變爲O(logn)?

我花了很多時間,但仍然感到沮喪。 ..我欣賞你的答案

+0

如果您還有其他問題,您無法弄清楚您自己編輯某人的答案是不正確的。你總是可以提出另一個問題。 – dcaswell

回答

2

號考慮絕對的最壞情況,其中T看起來是這樣的:。

y 
\ 
    y 
    \ 
    ... 
    \ 
     x 

其中y s爲任意節點一旦張開x,樹會看像這樣:

x 
/
y 
\ 
    y 
/\ 
y y 
/\ 
    y y 
    /\ 
    y ... 
     \ 
      y 

(同樣,y s爲任意節點)。在這種情況下,深度仍然是O(n)

編輯:意識到我搞砸了「後」樹,所以用更正確的例子更新我的答案。

+0

謝謝。丹尼斯。這很有幫助。因此,張開手術後,T應該是這樣的: X / Ÿ \ Ÿ /\ Y Y / Y ... 這是不均衡的,對不對? –

+0

評論不是嘗試繪製樹的最佳地點。我在回答中添加了「之前」和「之後」,以便它們對我們兩個人都可見。 –

+0

@BiWu關於這個例子,你試圖給出被拒絕的編輯;再試一次較長的樹;你會看到模式。 –

0

否參見these notes。遍歷節點的平均深度減半,但不能保證產生平衡樹。