public class DFSTraverses {
boolean[] visited ; //访问标识数组,用来记录是否被访问
public void DFSTraverse(int [][] edge){
visited=new boolean[edge.length] ;
int i=0;
for(i=0;i<edge.length;i++){ //初始访问标识数组全部为false,标识各顶点未被访问
visited[i]=false;
}
for(i=0;i<edge.length;i++){
if (!visited[i]) {
DFS(edge,i);
}
}
}
private void DFS(int[][] edge, int i) {
int j;
visited[i]=true;
System.out.print(i+1);
System.out.print("-->");
for(j=0;j<edge.length;j++){
if (edge[i][j]>0&&edge[i][j]<65536&& !visited[j]) {
DFS(edge,j);
}
}
}
}
图的深度优先遍历DFS
最新推荐文章于 2023-11-02 16:47:01 发布