Bu kod, Kruskal algoritmasını kullanarak ağırlıklı olmayan bir grafa minimum birim ağırlıklı ağaç (minimum spanning tree) oluşturmak için kullanılır. Algoritma, adım adım en küçük ağırlıklı kenarları seçer ve birleştirir. Birleştirme işlemi, hiyerarşik bir ağaç yapısı oluşturarak gerçekleştirilir.
Bu kodda, Graph
sınıfı, graf veri yapısını temsil etmek için kullanılır. kenar_ekle()
fonksiyonu, grafın kenarlarını eklemek için kullanılır. kruskal_mst()
fonksiyonu, Kruskal algoritmasını uygular ve minimum birim ağırlıklı ağacı hesaplar.
Kodun sonunda, ağacın çizimi için networkx
ve matplotlib
kütüphaneleri kullanılmıştır. minimum_spanning_tree()
fonksiyonu, ağacı oluşturmak için kullanılır ve spring_layout()
fonksiyonu, düğümlerin konumlarını belirlemek için kullanılır. Sonuç olarak, ağacın çizimi plt.show()
fonksiyonu ile görüntülenir.
Aşağıda, Kruskal algoritması ile oluşturulan minimum birim ağırlıklı ağacın görselleştirilmiş halini görebilirsiniz.
Örnek kullanım:
g = Graph() g.kenar_ekle('A', 'B', 2) g.kenar_ekle('A', 'C', 3) g.kenar_ekle('B', 'C', 1) g.kenar_ekle('B', 'D', 1) g.kenar_ekle('C', 'D', 4) g.kruskal_mst()