File tree Expand file tree Collapse file tree 2 files changed +102
-0
lines changed
data_structures/Binary Tree Expand file tree Collapse file tree 2 files changed +102
-0
lines changed Original file line number Diff line number Diff line change 8888# Rope project settings
8989.ropeproject
9090.idea
91+ .DS_Store
Original file line number Diff line number Diff line change 1+ '''
2+ A binary search Tree
3+ '''
4+ class Node :
5+
6+ def __init__ (self , label ):
7+ self .label = label
8+ self .left = None
9+ self .rigt = None
10+
11+ def getLabel (self ):
12+ return self .label
13+
14+ def setLabel (self , label ):
15+ self .label = label
16+
17+ def getLeft (self ):
18+ return self .left
19+
20+ def setLeft (self , left ):
21+ self .left = left
22+
23+ def getRight (self ):
24+ return self .rigt
25+
26+ def setRight (self , right ):
27+ self .rigt = right
28+
29+
30+ class BinarySearchTree :
31+
32+ def __init__ (self ):
33+ self .root = None
34+
35+ def insert (self , label ):
36+
37+ #Create a new Node
38+
39+ node = Node (label )
40+
41+ if self .empty ():
42+ self .root = node
43+ else :
44+ dad_node = None
45+ curr_node = self .root
46+
47+ while True :
48+ if curr_node != None :
49+
50+ dad_node = curr_node
51+
52+ if node .getLabel () < curr_node .getLabel ():
53+ curr_node = curr_node .getLeft ()
54+ else :
55+ curr_node = curr_node .getRight ()
56+ else :
57+ if node .getLabel () < dad_node .getLabel ():
58+ dad_node .setLeft (node )
59+ else :
60+ dad_node .setRight (node )
61+ break
62+
63+ def empty (self ):
64+ if self .root == None :
65+ return True
66+ return False
67+
68+ def preShow (self , curr_node ):
69+ if curr_node != None :
70+ print (curr_node .getLabel (), end = " " )
71+
72+ self .preShow (curr_node .getLeft ())
73+ self .preShow (curr_node .getRight ())
74+
75+ def getRoot (self ):
76+ return self .root
77+
78+
79+ '''
80+ Example
81+ 8
82+ / \
83+ 3 10
84+ / \ \
85+ 1 6 14
86+ / \ /
87+ 4 7 13
88+ '''
89+
90+ t = BinarySearchTree ()
91+ t .insert (8 )
92+ t .insert (3 )
93+ t .insert (1 )
94+ t .insert (6 )
95+ t .insert (4 )
96+ t .insert (7 )
97+ t .insert (10 )
98+ t .insert (14 )
99+ t .insert (13 )
100+
101+ t .preShow (t .getRoot ())
You can’t perform that action at this time.
0 commit comments