我有一个由邻接矩阵表示的有向图,其中-1
表示两个节点之间断开连接。
我的目标是找到并总结图中的每个源节点(即包含到边缘的任何节点)。
我目前有一个O(n^2)
例程,用于检查给定行的每个单元格,并在每个单元格中翻转索引以查看是否存在进入当前正在查看的节点的边缘。 / p>
我有int
用于跟踪到目前为止我遇到过多少源节点,以及boolean
每次遇到一个节点时都会被标记为&# 39; ta源节点。
在我的代码的连续测试中,我发现每次都返回0个源节点,虽然我知道我的图表至少包含1.我已经写了以下方法......
在此方法中,size
表示图表中存在的节点数,m
是邻接矩阵。
public int numSources() {
int sources = 0;
boolean isSource = true;
for( int i = 0; i < size; i++ ) {
for( int j = 0; j < size; j++ ) {
if( m[j][i] != -1) {
isSource = false;
break;
}
}
if( isSource ) {
sources++;
} else {
isSource = true;
}
}
return sources;
}
我有一个文件,每行包含int int int
,其中前两个int
表示图中的两个节点,第三个表示它们之间的边缘成本