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ş
Egzersiz talimatları
.add()metodunu kullanarak mevcut düğümnode'u, hangi düğümlerin zaten ziyaret edildiğini takip etmek içinvisited_nodeskü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 birliktequeue'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. Yinelenebilirneighborsyineleyicisidir ve koşul,n'nin ziyaret edilen düğümler içinde olmamasıdır.
- Liste üretecinin çıktı ifadesi ve yineleyici değişkeni her ikisi de
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 ____])