CodeBlanks Logo Icon CodeBlanks

Tek kaynak

Bir kaynaktan tüm düğümlere en kısa yolu bulan algoritmayı öğrenirsin.

Tek kaynak

Dijkstra algoritması, bir graftaki tek bir başlangıç düğümünden tüm diğer düğümlere en kısa yolları bulur. Negatif olmayan ağırlıklar gerektirir.

Çıktı, bir mesafe dizisidir: dist[i] başlangıçtan i'ye en kısa mesafedir. Negatif kenar varsa algoritma çalışmaz.

Komşuluk listesi

Graf, her düğüm için bir komşu listesi olarak temsil edilir. Her eleman (neighbor, weight) çiftidir; örneğin graph[0] = [(1, 4), (2, 1)].

Bu gösterim, seyrek graflarda yer tasarrufu sağlar ve Dijkstra'nın verimli çalışmasını mümkün kılar.

Uygulama init_graph fonksiyonu

init_graph() yaz. Komşuluk listesini döndür. print(init_graph()) ile yazdır.

Başlangıç kodu

solution.py
def init_graph():
    # Komşuluk listesini döndür

Örnek çözüm

solution.py
def init_graph():
    # Komşuluk listesini döndür
    return [[(1, 4), (2, 1)], [(3, 1)], [(1, 2), (3, 5)], []]
print(init_graph())

Beklenen çıktı

[[(1, 4), (2, 1)], [(3, 1)], [(1, 2), (3, 5)], []]

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Dijkstra hangi durumu desteklemez?

  • Negatif ağırlıklar Doğru cevap
  • Negatif olmayan ağırlıklar
  • Sıfır ağırlıklar
  • Tamsayı ağırlıklar

Açıklama: Dijkstra negatif ağırlıkları desteklemez.

2 kenar ağırlığı

Soru
graph[0] = [(1, ____)]
Cevap
graph[0] = [(1, 4)]

Açıklama: 4 doğru.

3 Tek kaynak: kavramları eşleştir

Kavram Anlamı
graph[0] [(1,4),(2,1)]
graph[1] [(3,1)]
graph[2] [(1,2),(3,5)]
graph[3] []

İleri seviye bölümündeki tüm dersler