图的DFS实现与BFS实现

图的DFS实现与BFS实现

import java.util.ArrayList;

@SuppressWarnings("all")
public class Graph {
public static void main(String[] args) {

    int[][] matrix= {{ 0, 1, 0, 0, 0, 1, 1, 0, 0 }, 
                     { 1, 0, 1, 0, 0, 0, 1, 0, 1 }, 
                     { 0, 1, 0, 1, 0, 0, 0, 0, 1 },
                     { 0, 0, 1, 0, 1, 0, 1, 1, 1 }, 
                     { 0, 0, 0, 1, 0, 1, 0, 1, 0 }, 
                     { 1, 0, 0, 0, 1, 0, 1, 0, 0 },
                     { 0, 1, 0, 1, 0, 1, 0, 1, 0 }, 
                     { 0, 0, 0, 1, 1, 0, 1, 0, 0 }, 
                     { 0, 1, 1, 1, 0, 0, 0, 0, 0 }};
    boolean[] flag=new boolean[matrix[0].length];

// new Graph().DFS(matrix,3, flag);
ArrayList<integer> list=new ArrayList<>();
int start=1;
list.add(start);
flag[start]=true;
Graph g=new Graph();
g.BFS(matrix, start, flag, list);
}
private void DFS(int[][] matrix,int start,boolean[] flag) {
if(flag[start]==true)
return;
flag[start]=true;
for(int i=0;i<matrix[start].length;i++) {
if(i!=start&&matrix[start][i]==1&&flag[i]==false) {
System.out.println(i);
DFS(matrix,i,flag);
}
}
}
private void BFS(int[][] matrix,int start,boolean[] flag,ArrayList<integer> list) {
while(!list.isEmpty()) {
int k=list.remove(0);
for(int i=0;i<matrix[k].length;i++) {
if(i!=k&&matrix[k][i]==1&&flag[i]==false) {
System.out.println(i);
list.add(i);
flag[i]=true;
}
}
}
}
}</integer></integer>

全部评论

相关推荐

冷艳的小师弟在看机会:jd测评乱点直接被挂了,哭死~
点赞 评论 收藏
分享
Java抽象带篮子:难蚌,点进图片上面就是我的大头😆
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务