Skip to content

Commit 6c6c8cd

Browse files
Level-Order-Traversal
1 parent 32c6743 commit 6c6c8cd

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

Diff for: Tree/Level-Order-Traversal.py

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
class Node:
2+
def __init__(self, data):
3+
self.left = None
4+
self.data = data # self.data = None because create an object at a time None arguments passed in constructor
5+
self.right = None
6+
7+
def createTree(self, val):
8+
if self.data is None:
9+
self.data = val
10+
return
11+
12+
elif self.data == val:
13+
return
14+
15+
elif self.data > val:
16+
if self.left:
17+
self.left.createTree(val) # the address of self.left transfer to self !
18+
else:
19+
self.left = Node(val)
20+
21+
elif self.data < val:
22+
if self.right:
23+
self.right.createTree(val) # the address of self.right transfer to self !
24+
else:
25+
self.right = Node(val)
26+
27+
# Level-Order-Traversal (In use BFS(Breadth First Search))
28+
def levelOrder(self):
29+
self.level = 1 # declare a level of tree
30+
Queue = [] # here, it is Queue
31+
Queue.append(self) # Queue is stored first root node address at 0 index
32+
Queue.append(None) # Queue is stored is None at 1 index ---> [self,None]
33+
34+
while Queue != []: # here, it is check your queue is empty or not
35+
key = Queue.pop(0) # here, it's remove element at index 0 and to store a key variable
36+
if key is not None: # here, it's key is not None because key is stored a root address
37+
print(f"Level - {self.level} => {key.data}")
38+
39+
if key.left is not None:
40+
Queue.append(key.left)
41+
if key.right is not None:
42+
Queue.append(key.right)
43+
44+
else:
45+
print() # here, it's used to newline
46+
self.level += 1
47+
if Queue == []: # here, it's Queue is none as --- []
48+
break
49+
else:
50+
Queue.append(None) # here, it's Queue is stored is None ---> [None]
51+
52+
53+
if __name__ == "__main__":
54+
Queue = []
55+
root = Node(None)
56+
while True:
57+
num = int(input("\n Enter the node into Tree : "))
58+
if num < 0:
59+
break
60+
else:
61+
root.createTree(num)
62+
root.levelOrder()
63+
64+
''' Here, it is Called Breadth First Search (BFS) Algorithms in used Tree '''
65+
66+
# ---------------- Written By : - Aditya Pratap Singh ------------------

0 commit comments

Comments
 (0)