数据结构之图的深度优先遍历算法最简单理解,通俗易懂!

图为:在这里插入图片描述
对以上的图进行邻接矩阵存储的示意图为:
在这里插入图片描述

算法代码:

public class GrapDemo2 {
    //访问标志数组
    static boolean visited[]=new boolean[Graph2.vertex.length];

    public static void main(String[] args) {
        int i;
       for(i=0;i<Graph2.vertex.length;i++){
           if(!visited[i]){
               DFS(i);
           }
       }

    }
    //深度递归遍历算法
   static void DFS(int i){
        int j;
        visited[i]=true;//设置已访问标志
        System.out.println(Graph2.vertex[i]);
        for( j=0;j<Graph2.vertex.length;j++){
            if(Graph2.edges[i][j]!=0&&!visited[j]){
                System.out.println((i+1)+"->"+(j+1));
                DFS(j);//对为访问的邻接顶点递归调用
            }
        }
    }
}
 class Graph2 {
    static String vertex[]={"天","黄","地","水","火"};
    static int edges[][]={
            {0,3,0,0,1},
            {3,0,2,0,0},
            {0,2,0,5,2},
            {0,0,5,0,0},
            {1,0,2,0,0}
            ,};
}

通俗易懂理解:

在这里插入图片描述

原创文章 34 获赞 20 访问量 1130

猜你喜欢

转载自blog.csdn.net/qq_22744093/article/details/104850601