我试图建立一个顶点的图,A,B,C & D.如果有重叠,图必须将一个边映射到特定的顶点,例如顶点A和顶点C重叠为A具有1→2,并且C具有1→4。在Java中存储顶点 - 映射边线
将存储这些顶点然后检查它们的值是否彼此重叠的有效方式是什么?
例子:
A 1 2 3 4
B 9 10 12 13
C 1 4 2 3
D 15 16 17 18
我试图建立一个顶点的图,A,B,C & D.如果有重叠,图必须将一个边映射到特定的顶点,例如顶点A和顶点C重叠为A具有1→2,并且C具有1→4。在Java中存储顶点 - 映射边线
将存储这些顶点然后检查它们的值是否彼此重叠的有效方式是什么?
例子:
A 1 2 3 4
B 9 10 12 13
C 1 4 2 3
D 15 16 17 18
这取决于这些图,预计多久更改。如果它只是一次关闭,将顶点约束存储在Map<Vertex, Set<Constraint>
中,计算交集并将最终图存储为邻接列表或矩阵就好了。
你会做这样的事情
For each vertex v:
For each other vertex u
if constraints(u) intersect constraints(v)
add edge between u and v
您将结束与一个对称的非定向图。
一般而言,由于提供了很少的信息和示例 - 听起来像您想要使用“HashSet”或“HashMap”。 –
你能举出更多的例子吗? – throwit