Java 基于邻接矩阵的简单连通图
我正试图制作一个程序,用邻接矩阵判断一个图是否是单连通的。我成功地编写了代码,告诉我所有节点都有指向某个对象的链接,但这并不能保证在第一个节点和最后一个节点(简单连通图的定义)之间存在某种方式。我是一个初学者,所以我不知道这类问题是否可以发布在这里。你知道我该怎么做吗?这是到目前为止我的代码。如有任何建议,我们将不胜感激Java 基于邻接矩阵的简单连通图,java,graph,adjacency-matrix,Java,Graph,Adjacency Matrix,我正试图制作一个程序,用邻接矩阵判断一个图是否是单连通的。我成功地编写了代码,告诉我所有节点都有指向某个对象的链接,但这并不能保证在第一个节点和最后一个节点(简单连通图的定义)之间存在某种方式。我是一个初学者,所以我不知道这类问题是否可以发布在这里。你知道我该怎么做吗?这是到目前为止我的代码。如有任何建议,我们将不胜感激 package lab41; import java.util.Scanner; public class Graf { public static void m
package lab41;
import java.util.Scanner;
public class Graf {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("Introduceti nr de noduri:");
int n = s.nextInt();
int[][] a = new int[n + 1][n + 1];
int i, j, k;
System.out.println("Introduceti matricea adiacenta:");
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++) {
System.out.println("a[" + i + "][" + j + "]=");
a[i][j] = s.nextInt();
}
int x = 0;
j = 1;
i = 1;
do {
if (a[i][j] == 1) {
i++;
j = 1;
x++;
} else
j++;
}
while (i < n && j <= n);
if (x == n - 1)
System.out.println("Graful este conex");
else
System.out.println("Graful nu este conex");
}
}
lab41包装;
导入java.util.Scanner;
公共类Graf{
公共静态void main(字符串[]args){
扫描仪s=新的扫描仪(System.in);
System.out.println(“noduri简介”);
int n=s.nextInt();
int[][]a=新int[n+1][n+1];
int i,j,k;
System.out.println(“简介矩阵中心:”);
对于(i=1;i要查找图是否连接,可以从任何节点开始执行DFS&BFS,如果访问了所有节点,则表示图已连接
算法:
分配一个列表,visitedNodes={},和一个队列={}
选择任意节点,例如节点0
从节点0启动BFS。队列={Node 0}
弹出队列的头部,假设节点是x。如果节点x在visitedNodes中,请转至步骤3。否则,将x放入visitedNodes列表
访问节点x的所有邻居,并将它们放入队列中
继续步骤3至5,直到队列为空