Skip to content

Commit fdfd6fc

Browse files
committed
Breadth First Traversal
1 parent a919ee1 commit fdfd6fc

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Author: OMKAR PATHAK
2+
3+
# Breadth First Traversal is the one in which we print the data level wise. Refer below code and output for more
4+
# explanation
5+
6+
class Node(object):
7+
def __init__(self, data = None):
8+
self.leftChild = None
9+
self.rightChild = None
10+
self.data = data
11+
12+
def height(node):
13+
if node is None:
14+
return 0
15+
else:
16+
leftHeight = height(node.leftChild)
17+
rightHeight = height(node.rightChild)
18+
19+
if leftHeight > rightHeight:
20+
return leftHeight + 1
21+
else:
22+
return rightHeight + 1
23+
24+
def breadthFirstTraversal(root):
25+
if root == None:
26+
return 0
27+
else:
28+
h = height(root)
29+
for i in range(h + 1):
30+
printBFT(root, i)
31+
32+
def printBFT(root, level):
33+
if root is None:
34+
return
35+
else:
36+
if level == 1:
37+
print(root.data, end = ' ')
38+
elif level > 1:
39+
printBFT(root.leftChild, level - 1)
40+
printBFT(root.rightChild, level - 1)
41+
42+
if __name__ == '__main__':
43+
root = Node(1)
44+
root.leftChild = Node(2)
45+
root.rightChild = Node(3)
46+
root.leftChild.leftChild = Node(4)
47+
48+
breadthFirstTraversal(root)
49+
50+
# OUTPUT:
51+
# 1 2 3 4

0 commit comments

Comments
 (0)