Advertisement
lamiastella

dfs

May 28th, 2016
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.44 KB | None | 0 0
  1. /**
  2.  * Created by mona on 5/28/16.
  3.  */
  4.  
  5. import java.util.Stack;
  6.  
  7. public class DepthFirstSearch {
  8.     public static void DFS(GraphNode root, int num) {
  9.         if (root.val == num) {
  10.             System.out.println("root has the value "+num);
  11.         }
  12.         System.out.println(" current value is "+root.val);
  13.         Stack<GraphNode> stack = new Stack<>();
  14.         stack.push(root);
  15.         while (!stack.isEmpty()) {
  16.             GraphNode[] neighbors = stack.pop().neighbors;
  17.             for (int i = neighbors.length-1; i >= 0; i--) {
  18.                 GraphNode g = neighbors[i];
  19.                 if (!g.visited) {
  20.                     System.out.println(" current value is "+g.val);
  21.                     if (g.val == num) {
  22.                         System.out.println("Found");
  23.                     }
  24.                     g.visited = true;
  25.                     stack.push(g);
  26.                 }
  27.             }
  28.         }
  29.     }
  30.  
  31.     public static void main(String[] args) {
  32.         GraphNode n1 = new GraphNode(1);
  33.         GraphNode n2 = new GraphNode(2);
  34.         GraphNode n3 = new GraphNode(3);
  35.         GraphNode n4 = new GraphNode(4);
  36.         GraphNode n5 = new GraphNode(5);
  37.  
  38.         n1.neighbors = new GraphNode[] {n2};
  39.         n2.neighbors = new GraphNode[] {n4,n3};
  40.         n3.neighbors = new GraphNode[] {n4};
  41.         n4.neighbors = new GraphNode[] {n5};
  42.         n5.neighbors = new GraphNode[] {};
  43.  
  44.         DFS(n1, 5);
  45.     }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement