File tree Expand file tree Collapse file tree 1 file changed +57
-0
lines changed
Expand file tree Collapse file tree 1 file changed +57
-0
lines changed Original file line number Diff line number Diff line change 1+ class Queue :
2+ def __init__ (self ):
3+ self .items = []
4+
5+ def enqueue (self , data ):
6+ self .items .append (data )
7+
8+ def dequeue (self ):
9+ if len (self .items ):
10+ return self .items .pop (0 )
11+
12+ def peek (self ):
13+ if len (self .items ):
14+ return self .items [0 ].data
15+
16+
17+ class Node :
18+ def __init__ (self , data ):
19+ self .data = data
20+ self .left = None
21+ self .right = None
22+
23+
24+ class BinaryTree :
25+ def __init__ (self , data ):
26+ self .root = Node (data )
27+
28+
29+ def levelOrder (self , start ):
30+
31+ queue = Queue ()
32+ queue .enqueue (start )
33+ traversal = []
34+
35+ while len (queue .items ) > 0 :
36+ traversal .append (queue .peek ())
37+ node = queue .dequeue ()
38+
39+ if node .left is not None :
40+ queue .enqueue (node .left )
41+
42+ if node .right is not None :
43+ queue .enqueue (node .right )
44+
45+ return traversal
46+
47+
48+
49+
50+ tree = BinaryTree (3 )
51+ tree .root .left = Node (4 )
52+ tree .root .left .left = Node (6 )
53+ tree .root .left .right = Node (7 )
54+ tree .root .right = Node (5 )
55+ tree .root .right .left = Node (8 )
56+ tree .root .right .right = Node (9 )
57+ print (tree .levelOrder (tree .root ))
You can’t perform that action at this time.
0 commit comments