[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);
                }
        }
    }

}

Yorumlar

  1. // Continue komutunu kldırabiliriz

    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)
    {
    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);
    }
    }
    }
    }
    }
    }
    }
    }

    YanıtlaSil

Yorum Gönder

Bu blogdaki popüler yayınlar

Bir Yazılımcının karşılaşabileceği Mülakat Soruları Karşılaştıklarım

[Java] Append Nedir

WebSocket Nedir?