深度优先遍历Java
时间: 2023-10-17 11:05:45 浏览: 99
Java实现图的深度优先遍历和广度优先遍历
5星 · 资源好评率100%
深度优先遍历(DFS)是一种用于遍历或搜索树或图的算法。在Java中,可以使用递归或栈来实现深度优先遍历。以下是一个使用递归实现深度优先遍历的简单示例:
```java
import java.util.ArrayList;
import java.util.List;
class Node {
int value;
List<Node> children;
public Node(int value) {
this.value = value;
this.children = new ArrayList<>();
}
public void addChild(Node child) {
children.add(child);
}
}
public class DepthFirstSearch {
public static void main(String[] args) {
// 创建一个树结构
Node root = new Node(1);
Node child1 = new Node(2);
Node child2 = new Node(3);
Node child3 = new Node(4);
Node child4 = new Node(5);
root.addChild(child1);
root.addChild(child2);
child1.addChild(child3);
child2.addChild(child4);
// 进行深度优先遍历
dfs(root);
}
public static void dfs(Node node) {
System.out.println(node.value);
for (Node child : node.children) {
dfs(child);
}
}
}
```
在上面的示例中,我们使用一个简单的树结构进行深度优先遍历。从根节点开始,递归地访问每个节点,并打印节点的值。然后,对每个子节点调用递归函数,以便深度优先地遍历整个树。
请注意,这只是一个简单的示例,实际应用中,你可能需要根据具体情况进行适当的调整和扩展。
阅读全文