Doğrusal olmayan veri yapılarından bir tanesi ağaçlar diğeri ise graflardır. Graflar tıpkı ağaçlar gibi düğümler ve kenarlardan oluşurlar. Network, graph, ağ, şekil gibi isimlerle de karşımıza gelebilirler.
Grafların kullanım amacı birden fazla varlık olması durumunda bu varlıklar arasındaki ilişkinin ortaya konmasında yer alırlar. Graflar yönlü graf, ağırlıklı graf, özel graflar, tam graflar, düzlemsel graflar gibi çeşitlendirilebilir.
Grafları en çok aç gözlü yaklaşım algoritmaları olan Dijikstra, Bellman Ford, Prims ve Kruskal gibi algoritmalarda kullanırız. En kısa yolu bulmak üzere tasarlanan bir graf üzerinde bir dize işlemler algoritma özelliklerine bağlı olarak gerçekleştirilebilir. Yine yaygın olarak DFS (Depth First Search) derin öncelikli arama algoritmasında stack veri yapısı ile birlikte graf üzerinde bir kullanım mevcuttur. Benzer şekilde BFS (Breath First Search) Geniş öncelikli arama algoritmasında da kuyruk veri yapısı ile birlikte graf üzerinde bir kullanım mevcuttur.
Resim-1
Grafların kendi başına bir konu olarak değil de yukarıda bahsedilen algoritmalarla birlikte kullanımı daha anlaşılır olacağından bu bölümde bu kadar bilgi vermek yeterli olacaktır. Gelecek bölümlerde DFS, BFS ve diğer Greedy yöntemler anlatılırken graflar üzerinden anlatılacaktır.
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar
Algoritmalara Giriş Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein