Exemplo n.º 1
0
from array_queue import Queue
from node import Node
from binary_tree import Tree


def bfs(tree):
    queue = Queue()
    visit_order = []
    queue.enqueue(tree.get_root())

    while not queue.is_empty():
        node = queue.dequeue()
        visit_order.append(node.value)

        if node.has_left_child():
            queue.enqueue(node.get_left_child())

        if node.has_right_child():
            queue.enqueue(node.get_right_child())

    return visit_order


if __name__ == '__main__':
    tree = Tree("apple")
    tree.get_root().set_left_child(Node("banana"))
    tree.get_root().set_right_child(Node("cherry"))
    tree.get_root().get_left_child().set_left_child(Node("dates"))

    print(bfs(tree))
Exemplo n.º 2
0
from collections import deque
from binary_tree import Tree, Node


class BreathFirstTraversal(object):
    @staticmethod
    def traverse(tree):
        queue = deque()
        root = tree.get_root()
        queue.append(root)

        while len(queue) != 0:
            node = queue.popleft()
            print(node.get_value())
            if node.has_left():
                queue.append(node.get_left())
            if node.has_right():
                queue.append(node.get_right())


if __name__ == '__main__':
    tree = Tree("apple")
    tree.get_root().set_left(Node("banana"))
    tree.get_root().set_right(Node("cherry"))
    tree.get_root().get_left().set_left(Node("dates"))
    tree.get_root().get_left().set_right(Node("mangoes"))

    BreathFirstTraversal.traverse(tree)