Реализуйте метод поиска в ширину на узле дерева.
tree = A / | \ B C D / \ / \ E F G H / \ \ I J K
["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K"]
class Node: def __init__(self, name): self.children = [] self.name = name def add_child(self, name): self.children.append(Node(name)) return self def breadth_first_search(self, array): # Write your code here. queue = [self] while len(queue) > 0: cur_node = queue.pop(0) for child in cur_node.children: queue.append(child) array.append(cur_node.name) return array
- Пройдите по уровню дерева по уровню.
- Используйте очередь, чтобы выполнить обход итеративно.
- AlgoExpert для заявления о проблеме.
- Томас Робертсон для обложки ( https://unsplash.com/photos/wakld_0lcma ).
Оригинал: “https://dev.to/anzhari/today-i-learned-breadth-first-search-on-a-tree-197c”