Untitled
unknown
plain_text
a year ago
1.8 kB
6
Indexable
import java.util.HashSet;
import java.util.ArrayList;
import java.util.Queue;
import java.util.LinkedList;
import java.util.List;
public class MyClass {
public static void main(String args[]) {
Node n1 = new Node(10);
Node n2 = new Node(11);
Node n3 = new Node(12);
Node n4 = new Node(13);
n1.addEdge(n2);
n2.addEdge(n3);
n2.addEdge(n4);
n4.addEdge(n3);
n3.addEdge(n1);
HashSet<Node> visited = new HashSet<Node>();
visited.add(n1);
ArrayList<Node> traversal = new ArrayList<Node>();
//dfs(n1, visited, traversal);
bfs(n1, visited, traversal);
for (Node n : traversal) {
System.out.println(n.val);
}
}
private static void dfs(Node node, HashSet<Node> visited, ArrayList<Node> traversal) {
traversal.add(node);
for (Node n : node.edges) {
if (!visited.contains(n)) {
visited.add(n);
dfs(n, visited, traversal);
}
}
}
private static void bfs(Node node, HashSet<Node> visited, ArrayList<Node> traversal) {
Queue<Node> queue = new LinkedList<Node>();
queue.add(node);
while (!queue.isEmpty()) {
Node n = queue.poll();
traversal.add(n);
for (Node e : n.edges) {
if (!visited.contains(e)) {
visited.add(e);
queue.add(e);
}
}
}
}
}
class Node {
int val;
List<Node> edges;
Node(int val) {
this.val = val;
this.edges = new ArrayList();
}
public void addEdge(Node n) {
edges.add(n);
}
}
Editor is loading...
Leave a Comment