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

全部评论

相关推荐

昨天 11:33
江南大学 Java
已经在暑假实习了&nbsp;,没有明确说有hc,纠结实习到八月份会不会有点影响秋招毕竟感觉今年好多提前批
程序员小白条:92的话准备提前批,其他没必要,没面试机会的,而且你要准备充分,尤其八股和算法题
点赞 评论 收藏
分享
那一天的Java_J...:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务