File tree Expand file tree Collapse file tree 1 file changed +59
-0
lines changed Expand file tree Collapse file tree 1 file changed +59
-0
lines changed Original file line number Diff line number Diff line change
1
+ from collections import deque
2
+ class Node :
3
+ def __init__ (self ,value = None ):
4
+ self .value = value
5
+ self .right = None
6
+ self .left = None
7
+ def set_value (self , value = None ):
8
+ self .value = value
9
+ def get_value (self ):
10
+ return self .value
11
+ def get_right_child (self ):
12
+ return self .right
13
+ def get_left_child (self ):
14
+ return self .left
15
+ def set_left_child (self , value ):
16
+ self .left = value
17
+ def set_right_child (self , value ):
18
+ self .right = value
19
+ def has_left_child (self ):
20
+ return self .left != None
21
+ def has_right_child (self ):
22
+ return self .right != None
23
+
24
+ class Tree :
25
+ def __init__ (self , value = None ):
26
+ self .root = Node (value )
27
+ def get_root (self ):
28
+ return self .root
29
+
30
+ class Queue :
31
+ def __init__ (self ):
32
+ self .q = deque ()
33
+ def enq (self , value ):
34
+ self .q .appendleft (value )
35
+ def deq (self ):
36
+ return self .q .pop ()
37
+ def length (self ):
38
+ return len (self .q )
39
+ tree = Tree ("apple" )
40
+ tree .get_root ().set_left_child (Node ("banana" ))
41
+ tree .get_root ().set_right_child (Node ("cherry" ))
42
+ tree .get_root ().get_left_child ().set_left_child (Node ("dates" ))
43
+
44
+ visit_order = list ()
45
+ q = Queue ()
46
+
47
+ node = tree .get_root ()
48
+ q .enq (node )
49
+ while q .length ()> 0 :
50
+ node = q .deq ()
51
+ visit_order .append (node .value )
52
+
53
+ if node .has_left_child ():
54
+ q .enq (node .get_left_child ())
55
+ if node .has_right_child ():
56
+ q .enq (node .get_right_child ())
57
+
58
+
59
+ print (visit_order )
You can’t perform that action at this time.
0 commit comments