图为:
对以上的图进行邻接矩阵存储的示意图为:
算法代码:
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}
,};
}
通俗易懂理解: