bfs
Code for BFSunknown
python
2 years ago
1.3 kB
12
Indexable
from graph import Graph # importing the Graph class from the file I named "graph.py"
class Queue:
def __int__(self):
self.items = []
def __repr__(self):
print(self.items)
def is_empty(self):
return len(self.items) == 0
def enqueue(self, item):
self.items.insert(0, item)
def dequeue(self):
if not self.is_empty():
return self.items.pop()
else:
return "Queue is empty"
def size(self):
return len(self.items)
def bfs(graph, start_vertex):
visited = set()
queue = Queue()
queue.enqueue(start_vertex)
while not queue.is_empty():
current = queue.dequeue()
if current not in visited:
print(current, end=" ")
visited.add(current)
for neighbour in graph.graph[current]:
if neighbour not in visited:
queue.enqueue(neighbour)
# print(visited)
g = Graph()
g.add_vertex('A')
g.add_vertex('B')
g.add_vertex('C')
g.add_vertex('D')
g.add_vertex('E')
g.add_vertex('F')
g.add_vertex('G')
g.add_vertex('H')
g.add_vertex('I')
g.add_edge('A', 'E')
g.add_edge('A', 'C')
g.add_edge('E', 'H')
g.add_edge('H', 'I')
g.add_edge('C', 'D')
g.add_edge('D', 'E')
g.add_edge('C', 'G')
g.add_edge('G', 'F')
g.add_edge('F', 'B')
bfs(g, start_vertex='A')
Editor is loading...
Leave a Comment