根據(jù)這個鏈接stathat 使用與他們的treap重疊:GoLLRB 很棒,您沒有理由轉(zhuǎn)換。我們認(rèn)為 treaps 背后的想法是我們問題的優(yōu)雅解決方案,所以我們實(shí)施了它。我們喜歡 GoLLRB 提供的接口,所以我們在我們的實(shí)現(xiàn)中模仿了它。例如,我們添加到 treap 包中的一件事是允許您使用重疊函數(shù)進(jìn)行迭代,因此您可以獲得 [3,9) 中的所有鍵。我們經(jīng)常使用它,通常以結(jié)構(gòu)為鍵。帕特里克我正在使用以下代碼,但不知道如何繼續(xù):package mainimport( "reflect" "fmt" "github.com/stathat/treap")func IntLess(p, q interface{}) bool { return p.(int) < q.(int)}func BucketOverlap(a, b interface{}) bool { return false}func main() { tree := treap.NewOverlapTree(IntLess, BucketOverlap) tree.Insert(5, "a") tree.Insert(7, "b") tree.Insert(2, "c") tree.Insert(1, "d") for v := range tree.IterateOverlap([]int{2,5}) { fmt.Printf("val: %v\n", v) }}假設(shè)我想獲得范圍內(nèi)的鍵[2,5]=>[c,a]
- 2 回答
- 0 關(guān)注
- 209 瀏覽
添加回答
舉報
0/150
提交
取消