【问题标题】:Augmented interval tree增广区间树
【发布时间】:2015-11-01 16:26:42
【问题描述】:

我正在尝试通过使用按“间隔的‘低’值”排序的平衡二叉搜索树来实现 augmented interval tree

在普通的旧搜索树中,当尝试插入树中已经存在的键时,通常会忽略重复项(不插入)。

但在存储区间时,我可能有 (1,2) 和 (1,3) 具有相同的“低”值但不同。

如何处理增广区间树中重复的“低”值?我的意思是,我应该允许插入多个相同的“低”值吗?以什么顺序?如果有重复的键,如何在树中搜索?

【问题讨论】:

  • 如果旧区间完全包含在新区间中,一个选项是用新区间替换旧区间,如本例所示。
  • 显然存储两个区间,键是键,值是值。没有人说一个键可以有多个值。
  • 你有没有得到一个有效的实现?我在红黑树上实现了一个间隔树,但删除速度似乎很慢。我想知道我的增强逻辑是否会减慢它的速度。我找不到任何处理插入和删除的参考代码,所以我可能会做一些低效的事情。

标签: algorithm data-structures binary-search-tree intervals


【解决方案1】:

链接的文章建议使用每个区间的高值作为二级排序。然后你就有了间隔的总顺序,你可以正常搜索。交集查询不需要具有相同低值的区间之间的特定顺序;一旦你编写了代码,这将变得显而易见。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    相关资源
    最近更新 更多