Skip to content
Snippets Groups Projects

Resolve "Operation Traversing"

Merged Jacob Wahlman requested to merge 11-operation-traversing into develop
1 file
+ 15
10
Compare changes
  • Side-by-side
  • Inline
+ 15
10
"""@package docstring
B-ASIC Operation Module.
TODO: More info.
"""
from typing import List
from collections import deque
from b_asic.operation import Operation
def breadth_first_search(start: Operation) -> List[Operation]:
"""Use breadth first search to traverse the operation tree."""
visited: List[Operation] = [start]
queue = deque([start])
while queue:
operation = queue.popleft()
yield operation
for n_operation in operation.neighbours:
if n_operation not in visited:
visited.append(n_operation)
queue.append(n_operation)
"""Use breadth first search to traverse the operation tree."""
visited: List[Operation] = [start]
queue = deque([start])
while queue:
operation = queue.popleft()
yield operation
for n_operation in operation.neighbours:
if n_operation not in visited:
visited.append(n_operation)
queue.append(n_operation)
Loading