根据这个链接stathat 使用与他们的treap重叠:GoLLRB 很棒,您没有理由转换。我们认为 treaps 背后的想法是我们问题的优雅解决方案,所以我们实施了它。我们喜欢 GoLLRB 提供的接口,所以我们在我们的实现中模仿了它。例如,我们添加到 treap 包中的一件事是允许您使用重叠函数进行迭代,因此您可以获得 [3,9) 中的所有键。我们经常使用它,通常以结构为键。帕特里克我正在使用以下代码,但不知道如何继续: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) }}假设我想获得范围内的键[2,5]=>[c,a]
2 回答
- 2 回答
- 0 关注
- 191 浏览
添加回答
举报
0/150
提交
取消