[JAVA] Graphda BFS Dolaşma
public class Main {
/**
* @param args the command line arguments
*/
static char[] dugumler = {'A','B','C','D','E','F','G','H','I'};
static int[] gidildimi = new int[9];
static int [][] komsuluk = new int[9][9];
public static void main(String[] args) {
LinkedList<Integer> kuyruk = new LinkedList<Integer>();
// dizinin komsuluk degerlerininn girilmesi biraz karısık oldu ama kusura bakmayın :)
komsuluk[0][0]=0; komsuluk[0][1]=1; komsuluk[0][2]=0; komsuluk[0][3]=1; komsuluk[0][4]=1; komsuluk[0][5]=0; komsuluk[0][6]=0; komsuluk[0][7]=0; komsuluk[0][8]=0;
komsuluk[1][0]=1; komsuluk[1][1]=0; komsuluk[1][2]=1; komsuluk[1][3]=0; komsuluk[1][4]=1; komsuluk[1][5]=0; komsuluk[1][6]=0; komsuluk[1][7]=0; komsuluk[1][8]=0;
komsuluk[2][0]=0; komsuluk[2][1]=1; komsuluk[2][2]=0; komsuluk[2][3]=0; komsuluk[2][4]=0; komsuluk[2][5]=1; komsuluk[2][6]=0; komsuluk[2][7]=0; komsuluk[2][8]=0;
komsuluk[3][0]=1; komsuluk[3][1]=0; komsuluk[3][2]=0; komsuluk[3][3]=0; komsuluk[3][4]=0; komsuluk[3][5]=0; komsuluk[3][6]=1; komsuluk[3][7]=0; komsuluk[3][8]=0;
komsuluk[4][0]=1; komsuluk[4][1]=1; komsuluk[4][2]=0; komsuluk[4][3]=0; komsuluk[4][4]=0; komsuluk[4][5]=0; komsuluk[4][6]=1; komsuluk[4][7]=0; komsuluk[4][8]=0;
komsuluk[5][0]=0; komsuluk[5][1]=0; komsuluk[5][2]=1; komsuluk[5][3]=0; komsuluk[5][4]=0; komsuluk[5][5]=0; komsuluk[5][6]=0; komsuluk[5][7]=0; komsuluk[5][8]=0;
komsuluk[6][0]=0; komsuluk[6][1]=0; komsuluk[6][2]=1; komsuluk[6][3]=1; komsuluk[6][4]=0; komsuluk[6][5]=0; komsuluk[6][6]=0; komsuluk[6][7]=1; komsuluk[6][8]=0;
komsuluk[7][0]=0; komsuluk[7][1]=0; komsuluk[7][2]=0; komsuluk[7][3]=0; komsuluk[7][4]=0; komsuluk[7][5]=0; komsuluk[7][6]=0; komsuluk[7][7]=1; komsuluk[7][8]=1;
komsuluk[8][0]=0; komsuluk[8][1]=0; komsuluk[8][2]=0; komsuluk[8][3]=0; komsuluk[8][4]=0; komsuluk[8][5]=0; komsuluk[8][6]=0; komsuluk[8][7]=1; komsuluk[8][8]=0;
for(int dugum = 0; dugum<9;dugum++)
{
if(gidildimi[dugum]==0)
kuyruk.add(dugum);
while(!kuyruk.isEmpty())
{
int dgm = kuyruk.removeFirst();
if(gidildimi[dgm]!=0)
continue;
gidildimi[dgm]=1;
System.out.println(dugumler[dgm]);
for(int i=0;i<9;i++)
if(komsuluk[dgm][i]==1 && gidildimi[i]==0)
kuyruk.add(i);
}
}
}
}
/**
* @param args the command line arguments
*/
static char[] dugumler = {'A','B','C','D','E','F','G','H','I'};
static int[] gidildimi = new int[9];
static int [][] komsuluk = new int[9][9];
public static void main(String[] args) {
LinkedList<Integer> kuyruk = new LinkedList<Integer>();
// dizinin komsuluk degerlerininn girilmesi biraz karısık oldu ama kusura bakmayın :)
komsuluk[0][0]=0; komsuluk[0][1]=1; komsuluk[0][2]=0; komsuluk[0][3]=1; komsuluk[0][4]=1; komsuluk[0][5]=0; komsuluk[0][6]=0; komsuluk[0][7]=0; komsuluk[0][8]=0;
komsuluk[1][0]=1; komsuluk[1][1]=0; komsuluk[1][2]=1; komsuluk[1][3]=0; komsuluk[1][4]=1; komsuluk[1][5]=0; komsuluk[1][6]=0; komsuluk[1][7]=0; komsuluk[1][8]=0;
komsuluk[2][0]=0; komsuluk[2][1]=1; komsuluk[2][2]=0; komsuluk[2][3]=0; komsuluk[2][4]=0; komsuluk[2][5]=1; komsuluk[2][6]=0; komsuluk[2][7]=0; komsuluk[2][8]=0;
komsuluk[3][0]=1; komsuluk[3][1]=0; komsuluk[3][2]=0; komsuluk[3][3]=0; komsuluk[3][4]=0; komsuluk[3][5]=0; komsuluk[3][6]=1; komsuluk[3][7]=0; komsuluk[3][8]=0;
komsuluk[4][0]=1; komsuluk[4][1]=1; komsuluk[4][2]=0; komsuluk[4][3]=0; komsuluk[4][4]=0; komsuluk[4][5]=0; komsuluk[4][6]=1; komsuluk[4][7]=0; komsuluk[4][8]=0;
komsuluk[5][0]=0; komsuluk[5][1]=0; komsuluk[5][2]=1; komsuluk[5][3]=0; komsuluk[5][4]=0; komsuluk[5][5]=0; komsuluk[5][6]=0; komsuluk[5][7]=0; komsuluk[5][8]=0;
komsuluk[6][0]=0; komsuluk[6][1]=0; komsuluk[6][2]=1; komsuluk[6][3]=1; komsuluk[6][4]=0; komsuluk[6][5]=0; komsuluk[6][6]=0; komsuluk[6][7]=1; komsuluk[6][8]=0;
komsuluk[7][0]=0; komsuluk[7][1]=0; komsuluk[7][2]=0; komsuluk[7][3]=0; komsuluk[7][4]=0; komsuluk[7][5]=0; komsuluk[7][6]=0; komsuluk[7][7]=1; komsuluk[7][8]=1;
komsuluk[8][0]=0; komsuluk[8][1]=0; komsuluk[8][2]=0; komsuluk[8][3]=0; komsuluk[8][4]=0; komsuluk[8][5]=0; komsuluk[8][6]=0; komsuluk[8][7]=1; komsuluk[8][8]=0;
for(int dugum = 0; dugum<9;dugum++)
{
if(gidildimi[dugum]==0)
kuyruk.add(dugum);
while(!kuyruk.isEmpty())
{
int dgm = kuyruk.removeFirst();
if(gidildimi[dgm]!=0)
continue;
gidildimi[dgm]=1;
System.out.println(dugumler[dgm]);
for(int i=0;i<9;i++)
if(komsuluk[dgm][i]==1 && gidildimi[i]==0)
kuyruk.add(i);
}
}
}
}
// Continue komutunu kldırabiliriz
YanıtlaSilfor(int dugum = 0; dugum<9;dugum++)
{
if(gidildimi[dugum]==0)
{
kuyruk.add(dugum);
while(!kuyruk.isEmpty())
{
int dgm=kuyruk.removeFirst();
if(gidildimi[dgm]==0)
{
gidildimi[dgm]=1;
System.out.println(dugumler[dgm]);
for(int i = 0; i<9; i++)
{
if(komsuluk[dgm][i]==1 && gidildimi[i]==0)
{
kuyruk.add(i);
}
}
}
}
}
}
}
}