from collections import deque
graph = {}
graph["you"] = ["faik"]
graph["faik"] = ["ali", "özge", "serkan"]
graph["ali"] = ["kamil", "derya"]
graph["özge"] = ["derya"]
graph["serkan"] = ["mehmet"]
graph["kamil"] = []
graph["derya"] = []
graph["mehmet"] = []
class Graph:
def __init__(self):
self.nodes = []
self.edges = {}
def add_node(self, node):
self.nodes.append(node)
self.edges[node] = []
def add_edge(self, node1, node2):
self.edges[node1].append(node2)
self.edges[node2].append(node1)
def bfs(self, start_node, target_node):
queue = deque()
visited = set()
queue.append(start_node)
visited.add(start_node)
while queue:
node = queue.popleft()
if node == target_node:
return True
for neighbor in self.edges[node]:
if neighbor not in visited:
visited.add(neighbor)
queue.append(neighbor)
return False
grf = Graph()
for node in graph:
grf.add_node(node)
for node in graph:
for neighbor in graph[node]:
grf.add_edge(node, neighbor)
print(grf.bfs("you", "mehmet")