Given a tree with v vertices, find the level of each node in a tree from the source node.
Input : Output : Node Level 0 0 1 1 2 1 3 2 4 2 5 2 6 2 7 3 Explanation : Input: Output : Node Level 0 0 1 1 2 1 3 2 4 2 Explanation:
BFS(Breadth-First Search) is a graph traversal technique where a node and its neighbours are visited first and then the neighbours of neighbours. In simple terms, it traverses level-wise from the source. First, it traverses level 1 nodes (direct neighbours of source node) and then level 2 nodes (neighbours of source node) and so on. The BFS can be used to determine the level of each node from a given source node.
- Create the tree, a queue to store the nodes and insert the root or starting node in the queue. Create an extra array level of size v (number of vertices) and create a visited array.
- Run a loop while size of queue is greater than 0.
- Mark the current node as visited.
- Pop one node from the queue and insert its childrens (if present) and update the size of the inserted node as level[child] = level[node] + 1.
- Print all the node and its level.
Nodes Level 0 --> 0 1 --> 1 2 --> 1 3 --> 2 4 --> 2 5 --> 2 6 --> 2 7 --> 3
- Time Complexity: O(n).
In BFS traversal every node is visited only once, so Time Complexity is O(n).
- Space Complexity: O(n).
The space is required to store the nodes in a queue.
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- Count the number of nodes at given level in a tree using BFS.
- Print all paths from a given source to a destination using BFS
- Diameter of n-ary tree using BFS
- Difference between sums of odd level and even level nodes in an N-ary Tree
- Minimum cost path from source node to destination node via an intermediate node
- BFS vs DFS for Binary Tree
- Check if the given permutation is a valid BFS of a given Tree
- Maximum value at each level in an N-ary Tree
- Check if a given directed graph is strongly connected | Set 2 (Kosaraju using BFS)
- Traversing directory in Java using BFS
- BFS using STL for competitive coding
- Water Jug problem using BFS
- BFS using vectors & queue as per the algorithm of CLRS
- Detect cycle in an undirected graph using BFS
- Finding the path from one vertex to rest using BFS
- Islands in a graph using BFS
- Count number of ways to reach destination in a Maze using BFS
- Implementation of BFS using adjacency matrix
- Program to print all the non-reachable nodes | Using BFS
- Find integral points with minimum distance from given set of integers using BFS
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.