范围树建设

时间:2012-09-09 07:24:56

标签: c++ algorithm tree interval-tree

让我们考虑以下图片 enter image description here

这是一个所谓的范围树。我不明白一件事,它看起来类似于二叉搜索树,所以如果我们插入元素,我们可以使用与二叉搜索树插入过程中相同的过程。那么区别是什么呢?

我已阅读教程并猜测它是kd树,查询搜索树(如几何点搜索等)但是如何构建它?像二叉搜索树一样,还是需要额外的参数?也许是这样的

struct  range
{
int lowerbound;
int upperbound,
int element;

};

在插入过程中我们必须检查

 if(element>lowerbound && element <upperbound) 
then insert node

请帮我正确理解如何构建范围树。

1 个答案:

答案 0 :(得分:3)

在二进制搜索树中插入值时,插入一个新节点。

范围搜索树更类似于binary index tree。这两个数据结构具有固定的结构。将点添加/减去给定范围时,更新节点中的值,但不引入新节点。

这种结构的构造与KD-tree非常相似:基于给定的点,您可以选择最合适的分裂点。

当您学习新数据结构时,请始终考虑支持的操作 - 这将有助于您更快地了解结构。在您的情况下,它可以帮助您区分二叉搜索树和范围树。