[問題] getPos()函式

作者: david942j (文旋)   2012-12-05 21:53:42
在adtTest.h裡面
random刪去節點的時候
是random產生數字
然後呼叫getPos()函式
可是
getPos()這個函式的實做方式是
遍歷整個_container,找出對應第幾大的位置
這樣不就失去BST的快速尋找的意義了嘛QQ?
害我以為adtd -r 100000跑到天荒地老都沒有結果是我寫爛了(默
另外
雖然題本說可以不用旋轉
可是寫了應該沒差吧?
不是為了平衡
是小弟不才不知道不旋轉怎麼刪去節點=.=
作者: david942j (文旋)   2012-02-06 15:11:00
沒人理我QQ 因為這件事所以實驗設計中就不能放adtd -r了
作者: XDucka (Duck)   2012-02-06 16:18:00
十萬太大了 如果是adta -r 一萬再刪一萬就不會跑到天荒地
作者: david942j (文旋)   2012-02-06 16:51:00
可是BST明明就可以logN刪去 老師這樣寫好奇怪唷QQ
作者: ric2k1 (Ric)   2012-02-06 17:33:00
如果是 random 產生 string 再來用 logN 刪去,由於 string的 combinations 太多種,hit rate 會很低,所以才改成random 產生 position, traverse 到第 i 大的 node之後再刪這樣的確比較像是在測 erase 這個動作本身,而不是在測logN 的搜尋。不過在不知道資料的前提之下,好像也沒有比較好的做法。你要做旋轉很 OK 啊! 只要你不嫌麻煩就好。
作者: david942j (文旋)   2012-02-06 17:48:00
那可以改成呼叫ADT的第i大元素(? (getPos自己寫的意思)

Links booklink

Contact Us: admin [ a t ] ucptt.com