Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #var visited = [] # List to keep track of visited nodes.
- var queue = [] #Initialize a queue
- func bfs(visited, graph, node):
- var result = []
- visited.append(node)
- queue.append(node)
- while queue:
- var s = queue.pop_front()
- result.append(s)
- for neighbour in graph[s]:
- if not visited.has(neighbour):
- visited.append(neighbour)
- queue.append(neighbour)
- return result
- var graph1 = {
- 'A' : ['B','C'],
- 'B' : ['D', 'E'],
- 'C' : ['F'],
- 'D' : [],
- 'E' : ['F'],
- 'F' : []
- }
- var graph2 = {
- '0': ['1', '2'],
- '1': ['2'],
- '2': ['0', '3'],
- '3': ['3']
- }
- var graph3 = {
- 0:[1,3,4],
- 1:[0,2,4],
- 2:[1,6],
- 3:[0,4,6],
- 4:[0,1,3,5],
- 5:[4],
- 6:[2,3]
- }
- func test():
- print(bfs([], graph1, 'A') == ['A', 'B', 'C', 'D', 'E', 'F'])
- print(bfs([], graph2, '2') == ['2', '0', '3', '1'])
- print(bfs([], graph3, 0) == [0, 1, 3, 4, 2, 6, 5])
- print(bfs([], graph3, 1) != [0, 1, 3, 4, 2, 6, 5])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement