检查节点是否已完全连接邻居

时间:2015-02-16 16:47:08

标签: java graph nodes

我有一个图表,我想检查一个节点是否有完全连接的邻居。对于具有完全连接的邻居的节点,其所有邻居也必须连接。

因此,对于具有完全连接的邻居的节点,其邻居集必须是给定节点的每个邻居的邻居集的子集。我有以下代码,但它返回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;
}

对于Nodeneighbours()返回该节点的邻居

的集合

1 个答案:

答案 0 :(得分:1)

是因为每个节点都不是它自己的邻居吗?

例如......

for(Node neighbour : neighbours)
{
    for(Node n2 : neighbours) {
        if(neighbour == n2) continue;
        if(! neighbour.neighbours().contains(n2)) return false;
    }
}

......或者其他什么