如何使用邻接矩阵将有向图转换为无向图?
public directedToUndirected(boolean[][] adjMatrix) {
}
答案 0 :(得分:2)
使用原始矩阵和原始转置进行布尔OR
操作。
答案 1 :(得分:1)
你可以遍历整个数组并翻转索引,假设你使用的是0和1的
for (int i=0; i<adjMatrix.length; i++) {
for (int j=0; j<adjMatrix[i].length; j++) {
if (adjMatrix[i][j] == 1) {
adjMatrix[j][i] = 1;
}
}
}
答案 2 :(得分:0)
您必须找到任何不需要更改信息的方法。在以上所有建议的方法中,节点i
到j
之间的边缘被赋予j
到i
,这是错误的,因为没有这样的边缘。
您可以将图表更改为更大的图表并进行一些虚拟连接。例如,如果i
与j
有联系且j
与i
有联系,您可以将i
更改为i'
,并在j
之间定义新边{1}}和i
。您还应该保存i'
与i
相同的事实。