Skip to content

Commit 0d8c341

Browse files
Merge pull request #134 from pruthvigh/master
Add BFS Python code
2 parents 59dd264 + d4d5493 commit 0d8c341

File tree

1 file changed

+64
-0
lines changed
  • Tree Traversal/BFS/Python

1 file changed

+64
-0
lines changed

Tree Traversal/BFS/Python/bfs.py

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
"""
2+
Ref: https://www.geeksforgeeks.org/level-order-tree-traversal/
3+
4+
"""
5+
6+
# Recursive Python program for level order traversal of Binary Tree
7+
8+
# A node structure
9+
class Node:
10+
11+
# A utility function to create a new node
12+
def __init__(self, key):
13+
self.data = key
14+
self.left = None
15+
self.right = None
16+
17+
18+
# Function to print level order traversal of tree
19+
def printLevelOrder(root):
20+
h = height(root)
21+
for i in range(1, h+1):
22+
printGivenLevel(root, i)
23+
24+
25+
# Print nodes at a given level
26+
def printGivenLevel(root , level):
27+
if root is None:
28+
return
29+
if level == 1:
30+
print "%d" %(root.data),
31+
elif level > 1 :
32+
printGivenLevel(root.left , level-1)
33+
printGivenLevel(root.right , level-1)
34+
35+
36+
""" Compute the height of a tree--the number of nodes
37+
along the longest path from the root node down to
38+
the farthest leaf node
39+
"""
40+
def height(node):
41+
if node is None:
42+
return 0
43+
else :
44+
# Compute the height of each subtree
45+
lheight = height(node.left)
46+
rheight = height(node.right)
47+
48+
#Use the larger one
49+
if lheight > rheight :
50+
return lheight+1
51+
else:
52+
return rheight+1
53+
54+
# Driver program to test above function
55+
root = Node(1)
56+
root.left = Node(2)
57+
root.right = Node(3)
58+
root.left.left = Node(4)
59+
root.left.right = Node(5)
60+
61+
print "Level order traversal of binary tree is -"
62+
printLevelOrder(root)
63+
64+
#This code is contributed by Nikhil Kumar Singh(nickzuck_007)

0 commit comments

Comments
 (0)