" Java深度优先搜索算法(DFS)是一种用于遍历或搜索树或图的算法。算法从某个起始节点开始,沿着一条路径一直向下访问,直到无法继续往下访问为止,然后回溯到上一个节点,继续尝试其他分支。DFS通常用于寻找某个目标节点是否存在,或者用于遍历图中的所有节点。下面是一个简单的Java实现:
```java
public class DFS {
private int[] visited;
private int vertices;
public DFS(int vertices) {
this.vertices = vertices;
visited = new int[vertices];
}
public void dfs(int start) {
visited[start] = 1;
System.out.print(start + " ");
for (int i = 0; i < vertices; i++) {
if (adjacencyMatrix[start][i] == 1 && visited[i] == 0) {
dfs(i);
}
}
}
public static void main(String[] args) {
int vertices = 6;
int adjacencyMatrix[][] = {
{0, 1, 1, 0, 0, 0},
{1, 0, 1, 1, 0, 0},
{1, 1, 0, 1, 1, 0},
{0, 1, 1, 0, 1, 1},
{0, 0, 0, 1, 0, 1},
{0, 0, 0, 0, 1, 0}
};
DFS dfs = new DFS(vertices);
dfs.dfs(0);
}
}
```
这个例子中,我们使用一个二维数组表示图的邻接矩阵。`DFS`类包含一个表示访问状态的`visited`数组和一个表示顶点数量的`vertices`变量。`main`方法创建一个图的邻接矩阵,并实例化一个`DFS`对象。通过调用`dfs`方法并传入起始节点,可以进行深度优先搜索。
注意:这个例子中使用了数组表示邻接矩阵,如果是用链表或者边数组表示图,实现方式会有所不同。在实际应用中,还可以根据需要添加返回值、优化空间复杂度等操作。"