使用java'构建最小生成树;s树图

使用java'构建最小生成树;s树图,java,graph,tree,Java,Graph,Tree,我正在做一个项目,要求我跟踪二维平面上的许多点。我需要添加功能,允许某些点检测其他点的接近程度。我立刻想到了最近对问题,并认为也许我应该构造一个最小生成树 第一个问题是,这些点不断更新它们的坐标,我想知道这样做是否合理 另一个问题是,我不能使用第三方库,所以没有jgraph或jung。我想知道是否有一种方法可以只用我得到的库来构造最小跨度。可以使用TreeMap吗?或者我必须从头开始执行此操作吗?听起来您正在尝试执行最近邻查询。这是您试图找到离另一个点最近的点的地方。对于一个简单的解决方案,您只

我正在做一个项目,要求我跟踪二维平面上的许多点。我需要添加功能,允许某些点检测其他点的接近程度。我立刻想到了最近对问题,并认为也许我应该构造一个最小生成树

第一个问题是,这些点不断更新它们的坐标,我想知道这样做是否合理


另一个问题是,我不能使用第三方库,所以没有jgraph或jung。我想知道是否有一种方法可以只用我得到的库来构造最小跨度。可以使用TreeMap吗?或者我必须从头开始执行此操作吗?

听起来您正在尝试执行最近邻查询。这是您试图找到离另一个点最近的点的地方。对于一个简单的解决方案,您只需存储一个点列表,然后使用距离公式对其进行迭代,以确定哪些点最接近。但是,如果您想更快地执行查询,则需要使用支持这些类型查询的空间数据结构。我建议买棵KD树。Java的标准库中没有KD树实现,所以您需要自己实现它


树映射只是
Map
接口的一个实现,它允许您通过键来输入和检索值。如果你想写一些东西来生成一个最小生成树,你需要自己去做。

在非常面向对象的方法中,这样做会让
对象使用
观察者模式
并将自己注册为所有其他点的观察者,然后,随着点位置的改变,它们可以更新它们所改变的所有观察者。您可以控制更改发生频率的阈值,或者在通知发送给观察者之前需要更改多少。这将很有效,因为您说过,“某些”点需要跟踪邻近性,而不是所有。

哪些库“提供给您了”?这是家庭作业吗?jdk 6附带的任何库。是的,这是一个家庭作业项目,但我不是在要求一个编码的答案。这只是一个想法,我必须完成项目的一小部分,并想知道我是否在正确的轨道上。你说的“检测其他点的接近程度”是什么意思?你是否尝试执行返回接近另一点(例如最近邻点)的点的查询Java中的“TreeMap”实际上与
Tree
算法本身没有任何关系,它是
Map
接口的一个实现,恰好使用
Tree
结构进行存储。非常感谢,我现在正在研究它。