【问题标题】:Data structure to hold list of rectangles?保存矩形列表的数据结构?
【发布时间】:2012-12-04 07:41:12
【问题描述】:

我想知道是否有一个好的数据结构来保存轴对齐的非重叠离散空间矩形列表。因此,每个矩形都可以存储为整数 x、y、宽度和高度。只存储这样一个列表很容易,但我也希望能够查询给定的 x,y 坐标是否在任何其他矩形内。

一个简单的解决方案是创建一个散列并用散列后的每个矩形开始的左下角坐标填充它。这不允许我测试给定的 x,y 坐标,因为它会碰到中间的空白空间。另一个答案是在散列表中创建一堆边,用单位正方形覆盖整个矩形。这会为 100 x 100 的矩形创建太多不必要的条目。

【问题讨论】:

  • 我不确定当插入一个与其中一个树分割重叠的新矩形时它会如何工作。我想我可以拆分那个矩形,但是在退化的情况下,我们会得到像哈希表一样糟糕的东西,同时还有 log(n) 插入时间的额外好处。还是我误会了?

标签: algorithm sorting data-structures


【解决方案1】:

R-Tree 是可以使用的。 R-trees 是用于空间访问方法的树数据结构,即用于索引多维信息,例如地理坐标、矩形或多边形。所有矩形的信息都可以以树的形式存储,搜索起来很容易

Wikipedia pageshort pptresearch paper 将帮助您理解这个概念。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-16
    • 2014-06-11
    • 2010-11-08
    • 1970-01-01
    相关资源
    最近更新 更多