Untitled
unknown
plain_text
a year ago
1.8 kB
4
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