Какой из них лучше алгоритм BFS - PullRequest
0 голосов
/ 25 апреля 2019

Для двоичного дерева выведите все значения его узлов уровень за уровнем. Какой из 2 методов ниже является лучшим по производительности и удобочитаемости?

def bfs_queue(root):
   q = collections.deque(root)
   while q:
       node = q.popleft()
       print node.val
       if node.left:
          q.append(node.left)
       if node.right:
          q.append(node.right)

def bfs_no_queue(root):
   q = [root]
   while q:
       new_q = []
       for node in q:
          print node.val
          if node.left:
             new_q.append(node.left)
          if node.right:
             new_q.append(node.right)
       q=new_q
...