BaşlayınÜcretsiz başlayın

En Kısa Yol II

Hedef düğümün komşular arasında olup olmadığını kontrol eden kodu yazdığına göre, şimdi aynı fonksiyonu, hedef düğümün komşular arasında olmaması durumunun kodunu yazacak şekilde genişleteceksin.

Yazman gereken tüm kod else koşulunda; yani node2 neighbors içinde değilse.

Bu egzersiz, kursun bir parçasıdır

Python ile Ağ Analizine Giriş

Kursa Göz Atın

Egzersiz talimatları

  • .add() metodunu kullanarak mevcut düğüm node'u, hangi düğümlerin zaten ziyaret edildiğini takip etmek için visited_nodes kümesine ekle.
  • Mevcut düğüm node'un henüz ziyaret edilmemiş olan komşularını queue'ya ekle. Bunu yapmak için, bir liste üreteciyle birlikte queue'nun .extend() metodunu kullanman gerekecek. .extend() metodu, verilen bir listedeki tüm öğeleri sona ekler.
    • Liste üretecinin çıktı ifadesi ve yineleyici değişkeni her ikisi de n'dir. Yinelenebilir neighbors yineleyicisidir ve koşul, n'nin ziyaret edilen düğümler içinde olmamasıdır.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

def path_exists(G, node1, node2):
    """
    This function checks whether a path exists between two nodes (node1, node2) in graph G.
    """
    visited_nodes = set()
    queue = [node1]

    for node in queue:
        neighbors = G.neighbors(node)
        if node2 in neighbors:
            print('Path exists between nodes {0} and {1}'.format(node1, node2))
            return True

        else:
            # Add current node to visited nodes
            ____

            # Add neighbors of current node that have not yet been visited
            queue.extend([____ for ____ in ____ if ____ not in ____])
Kodu Düzenle ve Çalıştır