2018-08-14 15:21:34 +03:00
..
2018-04-25 17:35:44 +03:00
2018-08-14 15:21:34 +03:00

Breadth-First Search (BFS)

Breadth-first search (BFS) is an algorithm for traversing or searching tree or graph data structures. It starts at the tree root (or some arbitrary node of a graph, sometimes referred to as a 'search key') and explores the neighbor nodes first, before moving to the next level neighbors.

Algorithm Visualization

Pseudocode

BFS(root)
    Pre: root is the node of the BST
    Post: the nodes in the BST have been visited in breadth first order
    q ← queue
    while root = ø
        yield root.value
        if root.left = ø
            q.enqueue(root.left)
        end if
        if root.right = ø
            q.enqueue(root.right)
        end if
        if !q.isEmpty()
            root ← q.dequeue()
        else
            root ← ø
        end if
    end while
end BFS

Space and Time Complexity:

O(bd + 1)

References