我不明白爲什麼在splay tree數據結構中的旋轉不僅考慮了評級節點的父級,還考慮了祖父級(Zig-zag和Zig-zig操作)。爲什麼下面不工作:Splay樹旋轉算法:爲什麼使用鋸齒形和鋸齒形而不是簡單的旋轉?
爲我們插入,例如,一個新的節點樹,我們檢查是否插入左或右子樹。如果我們插入左側,我們旋轉結果右,反之亦然右子樹。遞歸地,它會是這樣的
Tree insert(Tree root, Key k){
if(k < root.key){
root.setLeft(insert(root.getLeft(), key);
return rotateRight(root);
}
//vice versa for right subtree
}
這應該避免整個「splay」程序,你不覺得嗎?
鄉親運行測試[計算機科學](http://cs.stackexchange.com/)網站可能是真的很高興幫你出了這個問題。 – Jan 2012-04-10 22:25:51
與這個網站無關? – Bober02 2012-04-10 22:33:22
我想說它是相關的,但是因爲最近CS網站開始的時候,像你這樣的算法問題可能更接近CS的興趣領域。此外,它們處於測試階段,因此他們肯定會欣賞增加的流量和更多的主題問題。 – Jan 2012-04-10 22:43:20