【发布时间】:2020-07-29 03:19:41
【问题描述】:
我的 comp sci 课程的一个问题是这样的:
我们可以使用“邻接矩阵”
int[][] matrix来表示图。如果存在从节点 i 到节点 j 的边,matrix[i][j]将非零。换句话说,在这种情况下,节点 i 将节点 j 视为它的“邻居”。请注意,这并不一定意味着节点 j 将节点 i 视为 ITS 邻居,从而允许不对称关系。每个值也可以为零,表示没有边缘/连接。矩阵大小为 n x n,其中 n 是节点数,节点编号为 0 到 n-1,允许任何节点连接到此范围内编号的任何其他节点。
给定一个邻接矩阵和
int x,删除索引 x 处节点的所有边。
我了解邻接矩阵是什么,但我不了解问题的边是什么意思,或者索引 x 是什么。
到目前为止,我的代码如下所示:
public void removeEdgesFromNode(int[][] matrix, int x) {
for(int i = 0; i < matrix.length; i++) {
for(int j = 0; j < matrix[].length; j++) {
if(j == x || i == x) {
matrix[i, j] = 0;
}
}
}
}
出现错误
Compilation error on line 7: error: class expected
for(int j = 0; j < matrix[].length; j++) {
^
我不认为我解决问题的方式是正确的,但至少我正在尝试开始解决问题。
【问题讨论】:
-
j < matrix[].length->j < matrix[0].length -
你不需要嵌套循环。只需一个循环即可清除
matrix[i][x]和matrix[x][i],其中i是迭代索引。
标签: java arrays nodes adjacency-matrix