CodeBlanks Logo Icon CodeBlanks

Sonuç yazdır

Ulaşılabilir şehirleri yazdırırsın.

Sonuç yazdır

Son adımda BFS sonuçlarını ekrana yazdıracağız. Tüm parçaları birleştir: build_cities, add_neighbor ve bfs_reachable.

Bu ders, önceki tüm fonksiyonları kullanır; başlangıç kodu zinciri tamamlanır.

Çıktı, sıralı ulaşılabilir şehirler listesidir; deterministic ve okunaklı.

Proje tamam

Bu mini proje ile şehir graph'ı, komşu ekleme ve BFS ile ulaşılabilirlik hesabını birleştirdin.

Gerçek uygulamalarda benzer yapılar harita, rota ve ağ analizinde kullanılır.

BFS, ulaşılabilirlik için temel bir araçtır; bu proje onun pratik kullanımını gösterir.

Uygulama Sonuç yazdır

print_reachable(graph, start) yaz. bfs_reachable çağırıp sonucu print() ile yazdır. print_reachable(build_cities(), "A") çıktısı: ['A', 'B', 'C', 'D'].

Başlangıç kodu

solution.py
def build_cities():
    # Şehir graph'ını tanımla
    return {"A": ["B", "C"], "B": ["A", "D"], "C": ["A", "D"], "D": ["B", "C"]}
def add_neighbor(graph, city, neighbor):
    # Komşu ekle
    graph[city].append(neighbor)
    return graph
def bfs_reachable(graph, start):
    # Ulaşılabilir şehirler
    visited = set()
    queue = [start]
    while queue:
        node = queue.pop(0)
        if node not in visited:
            visited.add(node)
            for nb in graph[node]:
                if nb not in visited:
                    queue.append(nb)
    return sorted(visited)
def print_reachable(graph, start):
    # Sonuç yazdır

Örnek çözüm

solution.py
def build_cities():
    # Şehir graph'ını tanımla
    return {"A": ["B", "C"], "B": ["A", "D"], "C": ["A", "D"], "D": ["B", "C"]}
def add_neighbor(graph, city, neighbor):
    # Komşu ekle
    graph[city].append(neighbor)
    return graph
def bfs_reachable(graph, start):
    # Ulaşılabilir şehirler
    visited = set()
    queue = [start]
    while queue:
        node = queue.pop(0)
        if node not in visited:
            visited.add(node)
            for nb in graph[node]:
                if nb not in visited:
                    queue.append(nb)
    return sorted(visited)
def print_reachable(graph, start):
    # Sonuç yazdır
    reachable = bfs_reachable(graph, start)
    print(reachable)
print_reachable(build_cities(), "A")

Beklenen çıktı

['A', 'B', 'C', 'D']

Soru ve cevaplar

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

1 Sonuç yazdır: kavramları eşleştir

Kavram Anlamı
print Yazdır
reachable Ulaşılabilir
sorted Sıralı
BFS Keşif

2 Bu projede hangi yapı kullanılmadı?

  • Visited set
  • Graph
  • Queue
  • Heap Doğru cevap

Açıklama: Heap.

3 Yazdırma

Soru
print(____)
Cevap
print(reachable)

Açıklama: reachable doğru.

Orta seviye bölümündeki tüm dersler