Skip to content
Snippets Groups Projects
DepthFirstSearch.java 658 B
Newer Older
  • Learn to ignore specific revisions
  • Haley Glavina's avatar
    Haley Glavina committed
    package search;
    
    public class DepthFirstSearch {
    
    
    		private boolean[] marked;
    		private int count;
    		
    
    Lawrence Chung's avatar
    Lawrence Chung committed
    		public static void main(String[] args) {
    
    Lawrence Chung's avatar
    Lawrence Chung committed
    		
    			Graph g = new Graph(5);
    			g.addEdge(4, 3);
    			g.addEdge(2, 3);
    			g.addEdge(1, 2);
    			g.addEdge(0, 2);
    			DepthFirstSearch s = new DepthFirstSearch(g, g.V());
    
    Lawrence Chung's avatar
    Lawrence Chung committed
    		}
    		
    
    Lawrence Chung's avatar
    Lawrence Chung committed
    		public DepthFirstSearch(Graph G, int s){
    
    			marked = new boolean[G.V()];
    			dfs(G, s);
    			
    		}
    		
    
    Lawrence Chung's avatar
    Lawrence Chung committed
    		public void dfs(Graph G, int v){
    
    			marked[v] = true;
    			count++;
    			for(int w : G.adj(v))
    				if(!marked[w])
    					dfs(G, w);
    		}
    		
    		public boolean marked(int w){
    			return marked[w];
    		}
    		
    		public int count(){
    			return count;
    		}
    
    Haley Glavina's avatar
    Haley Glavina committed
    }