from collections import deque
def bfs(graph, start):
visited = set()
queue = deque([start])
while queue:
vertex = queue.popleft()
if vertex not in visited:
print(vertex, end=” “)
visited.add(vertex)
queue.extend(neighbor for neighbor in graph[vertex] if neighbor not in visited)
def main():
graph = {}
num_edges = int(input(“Enter the number of edges: “))
print(“Enter the edges (format: node1 node2):”)
for _ in range(num_edges):
edge = input().strip().split()
node1, node2 = edge[0], edge[1]
if node1 not in graph:
graph[node1] = []
if node2 not in graph:
graph[node2] = []
graph[node1].append(node2)
graph[node2].append(node1) # Assuming it’s an undirected graph
start_node = input(“Enter the starting node for BFS: “)
print(“BFS traversal starting from node:”, start_node)
bfs(graph, start_node)
if __name__ == “__main__”:
main()