为了账号安全,请及时绑定邮箱和手机立即绑定

在 stathat 的 treap 包中重叠?

在 stathat 的 treap 包中重叠?

Go
眼眸繁星 2021-06-02 17:41:13
根据这个链接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
提交
取消
意见反馈 帮助中心 APP下载
官方微信