Java Breadth First Search on Adjacency Matrix

Açıklama

  • Breadth First Search ( Geniş Ö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 BFS algoritmasında, graf üzerinde dolaşmayı Adjacency Matrix yardımıyla yapıyoruz !

 

Kod

package bfs;

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 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 BFS(int graph[][],int x){
		
	//	visited[x]=true;
		
		
		 Queue<Integer> queue = new LinkedList<>(); 
		 
		 queue.add(x);

		 
		 
		 while(!queue.isEmpty()) {
			 
			 
			 x = queue.remove();
			 
			 System.out.print(x);
			 

				
				if(!visited[x]){
				
					for(int i=0;i<graph.length;i++) {	
				
						if(graph[x][i]==1 && !visited[i] && !queue.contains(i))
							queue.add(i);
						
						
					}
					
					visited[x] = true;
					
				 }
		 
			 
			// System.out.println(queue.toString());
			 
//			 System.out.println("silindi =" +queue.remove());
		
			 
		 }
		 
		 
		 
		
		
	}
	
	
	
	public static void main(String args[]) {
		
		BFS(graph,0);   // x is a initial vertex of bfs
		
	}

}

Yorumlar

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