BFS Algoritması Graflar üzerinde arama algoritmasıdır. Bir noktadan başlayarak diğer tüm düğümleri ziyaret etmeyi hedefler. Mantık olarak en yakındaki düğümleri ziyaret eder, giderek uzaklaşır. Depth First Search'ten temel farkı budur. DFS algoritması gidebileceği yere kadar gider, ondan sonra geri döner.

BFS Algoritmasında kuyruk veri yapısı kullanılmaktadır. DFS'te ise stack kullanılır. algoritmanın fonksiyonu aşağıdaki gibidir.



void bfs(int v)
{
kuyruga_ekle(v);
state[v] = waiting;



while(!kuyruk_bosmu())
{
v = kuyruktan_sil();
state[v] = visited;
printf("ziyaret edilen dugum %d\n", v);
for(i=0;i<5;i++){
if(adj[v][i] == 1 && state[i] == initial)
{
kuyruga_ekle(i);
state[i]=waiting;
}
}
}
}


kod yazımının ayrıntılı anlatımı ve ilgili video için linki ziyaret edebilirsiniz. http://muhammedeminoglu.com/bfs-algoritmasi-c-kodu/