图的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>

全部评论

相关推荐

10-28 11:04
已编辑
美团_后端实习生(实习员工)
一个2人:我说几个点吧,你的实习经历写的让人觉得毫无含金量,你没有挖掘你需求里的 亮点, 让人觉得你不仅打杂还摆烂。然后你的简历太长了🤣你这个实习经历看完,估计没几个人愿意接着看下去, sdk, 索引这种东西单拎出来说太顶真了兄弟,好好优化下简历吧
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务