algorithm - 在邻接矩阵中,如何找到给定顶点的邻居的邻居?

标签 algorithm matrix graph

假设我们有一个像这样的 4x4 邻接矩阵:

enter image description here

和给定的顶点,比如说int v=1

如何找到顶点 1 的邻居的邻居,并将它们添加到列表中?例如,如果我想从顶点 1 到顶点 4,我必须先到顶点 2,然后从顶点 2 到顶点 4,因为从 1 到 4 没有直接路径。我想添加顶点 4 和类似于列表。

现在这是我得到的:

int v=1;
for(int i=0;i<adjmat.length;i++){
            if (i==v){
                for(int j=0;j<adjmat[i].length;j++){
                    if (j!=i){ // self loops do not count
                        // if adjmat[i][j] has a neighbor, add the neighbor to a list 
                    }
                }
            }
        }

最佳答案

你所拥有的似乎是正确的。

简单说明一下: 当循环从 0 开始时,图形的索引从 1 开始。您可能不担心这一点,但无论如何,我们假设顶点的命名从 1 开始,并且数组从 0 开始。

那么唯一真正关心的是你的最外层循环。如果您只需要找到一个顶点 v 的邻居的邻居(您的示例,v = 1)

int v_i = v-1;
for(int j=0;j<adjmat[v_i].length;j++){
    if (v_i!=j){ // self loops do not count
        // if adjmat[i][j] has a neighbor, add the neighbor to a list 
        //*NOTE maybe only if that neighbor is also not a self loop, one of v's first neighbors, or v 
    }
}

关于algorithm - 在邻接矩阵中,如何找到给定顶点的邻居的邻居?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41604702/

相关文章:

c - 使用 strcmp 在数组中查找匹配项

c++ - 当表示为对象的一维 vector 时有效地旋转 NxM 矩阵 (C++)

java - 自定义 JGraphX

sql-server - SQL Server 的多边形算法中的点

matrix - Unity3D 相机矩阵的高级信息

python - 理解和可视化递归

c++ - astar_search 在以 listS 作为顶点容器的图上?

java - 图连接

algorithm - 了解 Dijkstra 算法的时间复杂度计算

Python数学游戏算法