我有一个图表,我想检查一个节点是否有完全连接的邻居。对于具有完全连接的邻居的节点,其所有邻居也必须连接。
因此,对于具有完全连接的邻居的节点,其邻居集必须是给定节点的每个邻居的邻居集的子集。我有以下代码,但它返回false
,即使给它一个确实有完全连接邻居的节点,我不明白为什么会这样。
public static boolean isFullyConnectedNeighbours(Node node)
{
Set<Node> neighbours = node.neighbours();
for(Node neighbour : neighbours)
{
if(! neighbour.neighbours().containsAll(neighbours)) return false;
}
return true;
}
对于Node
,neighbours()
返回该节点的邻居
答案 0 :(得分:1)
是因为每个节点都不是它自己的邻居吗?
例如......
for(Node neighbour : neighbours)
{
for(Node n2 : neighbours) {
if(neighbour == n2) continue;
if(! neighbour.neighbours().contains(n2)) return false;
}
}
......或者其他什么