我正在寻找一种有效的方式来表示连通图,其中节点在空间上位于3D欧几里德空间中,并且每个节点可以具有6个边(在其各自的2D平面上和上下4个方向),但是尚未找到任何示例,可能是因为我没有使用正确的关键字。
非常感谢任何指导。
这样的结构有没有库?
答案 0 :(得分:1)
也许您正在寻找'空间'数据结构。 一个简单的例子是oct-tree(三维),它易于实现,网上也有很多实现。
网格是否一次扩展一个节点?还是一次飞机?或者您是否添加了多维数据集(例如10x10x10)的节点?
我前段时间编写了自己的多维结构,称为PH-Tree。如果添加单个节点,则可以逐个添加它们。如果添加节点的多维数据集,也许最好将这些多维数据集存储在3D数组中,然后将这些数组添加到ph-tree中,并将它们在空间中的位置作为键。
PH-Tree实现起来有点复杂,但它比octtree更快,更节省空间,至少对于大型数据集而言。 PH-Tree源是Java。
要查找的其他关键词:R-Trees(R * -Tree,R + Tree,X-Tree)和kd-trees。