data-structures - 如何最好地表示 3D 欧几里得空间中的网格图?

标签 data-structures graph grid

我正在寻找一种表示连通图的有效方法,其中节点在空间上位于 3D 欧几里得空间中,每个节点可能有 6 条边(在其各自的 2D 平面上有 4 个方向以及上下方向),但是还没有找到任何示例,可能是因为我没有使用正确的关键字。

任何指导将不胜感激。

有这样结构的库吗?

3D grid

最佳答案

也许您正在寻找“空间”数据结构。 一个简单的例子是八叉树(三维),它很容易实现,网上也有很多实现。

网格是否一次扩展一个节点?还是一次飞机?还是要添加节点的立方体(例如 10x10x10)?

我前段时间写了自己的多维结构,叫PH-Tree .如果您添加单个节点,则可以一个接一个地添加它们。如果添加节点立方体,也许最好将这些立方体存储在 3D 数组中,然后将这些数组添加到 ph 树中,并将它们在空间中的位置作为键。

PH-Tree 的实现有些复杂,但它比八叉树更快且空间效率更高,至少对于大型数据集而言是这样。 PH-Tree 源代码使用 Java。

要查找的其他关键字:R-树(R*-树、R+树、X-树)和 kd-树。

关于data-structures - 如何最好地表示 3D 欧几里得空间中的网格图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33577310/

相关文章:

python - 将列表的列表与其自身进行比较

algorithm - 跳过列表与二叉搜索树

c - C语言如何获取多个输入?

c - 为什么很多 BST 函数返回根而不使用双指针?

java - 如何在 jmeter 中生成仪表板报告?

java - Selenium 中基于 IP 的测试

java - 从文件读取和写入任何数据结构?

java - 我正在尝试从 JAVA 中的 MultiMap(org.apache.commons.collections.MultiMap) 中删除单个值

matlab - 使 Matlab 网格线更明显

extjs - 记住刷新 extjs 网格中的选定行后