2

让我们考虑下面的图片 在此处输入图像描述

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

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

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

};

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

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

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

4

1 回答 1

3

在二叉搜索树中,当您插入一个值时,您会插入一个新节点。

范围搜索树更类似于二叉索引树。这两种数据结构具有固定的结构。当您向给定范围添加/减去一个点时,您会更新节点中的值,但不会引入新节点。

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

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

于 2012-09-09T09:10:17.557 回答