Data structures 如何在三维欧几里德空间中最好地表示网格图?

Data structures 如何在三维欧几里德空间中最好地表示网格图?,data-structures,graph,grid,Data Structures,Graph,Grid,我正在寻找一种表示连通图的有效方法,其中节点在空间上位于三维欧几里德空间中,每个节点可能有6条边(其各自二维平面上的4个方向以及上下),但尚未找到任何示例,可能是因为我没有使用正确的关键字 任何指导都将不胜感激 有这样一个结构的图书馆吗 也许您正在寻找一种“空间”数据结构。 一个简单的例子是oct树(三维),它很容易实现,在web上也有很多实现 网格是否一次扩展一个节点?还是一次坐飞机?或者您正在添加节点的多维数据集(例如10x10x10) 不久前我写了自己的多维结构,叫做。如果添加单个节点,则

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

任何指导都将不胜感激

有这样一个结构的图书馆吗


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

网格是否一次扩展一个节点?还是一次坐飞机?或者您正在添加节点的多维数据集(例如10x10x10)

不久前我写了自己的多维结构,叫做。如果添加单个节点,则可以逐个添加它们。如果添加节点的立方体,最好将这些立方体存储在3D数组中,然后将这些数组添加到ph树中,它们在空间中的位置作为键

PH树的实现有点复杂,但至少对于大型数据集而言,它比八叉树更快、更节省空间。 PH树的源代码是用Java编写的


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

您能提供更多详细信息吗?到目前为止,我看不出有任何理由要存储它,因为任何节点的位置都不需要生成它的邻居,我将添加进一步的细节。问题是,这将是一个不断增长的网络,不应该被限制为abc网格。这说明有误导性,但我认为总比什么都没有好。我会调查的,谢谢!网格将一次扩展一个节点。对于点形成实心“点云”的情况,也有专门的索引,但我目前找不到好的参考。