Java Depth First Search on Adjacency Matrix

Açıklama

  • Depth First Search ( Derin Öncelikli Arama ) algoritmasının amaçı graf'daki tüm düğümleri dolaşmaktır.
  • Bu algoritme graf ve ağaç veri yapılarında çalışır.
  • Bu DFS algoritmasında, graf üzerinde dolaşmayı Adjacency Matrix yardımıyla yapıyoruz !

 

Kod

package dfs;

import java.io.File;
import java.util.*;

public class main {
	
	
	
	static boolean visited2[]= {false,false,false,false,false};
			
	static boolean visited[]= {false,false,false,false,false,false};
	
	static int graph3[][]= {
			{0,1,1,0,0,0},
			{1,0,0,1,1,0},
			{1,0,0,0,1,0},
			{0,1,0,0,1,1},
			{0,1,1,1,0,1},
			{0,0,0,1,1,0},
			};
	
	static char table[]= {'*','*','*','*','*','*'};
	
	static int graph2[][]= {
			{0,1,1,0,0,0},
			{1,0,0,1,0,0},
			{1,0,0,1,0,0},
			{0,1,1,0,1,0},
			{0,0,0,1,0,1},
			{0,0,0,0,1,0},
			};
	
	
	static int graph[][]= {
			{0,1,0,0,1},
			{1,0,1,1,1},
			{0,1,0,1,0},
			{0,1,1,0,1},
			{1,1,0,1,0},
			};
	
	
	
	
	public static void DFS(int graph[][],int x){
		

		
		 Stack<Integer> stack = new Stack<>(); 
		 
		 stack.add(x);

		 
		 
		 while(!stack.isEmpty()) {
			 
		
			 boolean b = false;
			 
			 
			 for(int i=0;i<graph.length;i++) {
				 
				 if(graph[x][i] == 1 && !visited[i]) {

					 stack.push(i);
					 x=i;
					 System.out.print(x);
					 b=true;

					 
				 }
				 
				 visited[x]=true;
				 

			 }
			 
			 
			 if(!b) {
				 x = stack.pop();
				 
			 }
			 
			 
			 
			 
			 
		 }
		 
		 
		 
		
		
	}
	
	
	
	public static void main(String args[]) {

		DFS(graph,0);
		
	}

}

Yorumlar

Bu gönderi için yorum yapılmadı.