-
Notifications
You must be signed in to change notification settings - Fork 52
/
Copy pathBinarytree
59 lines (49 loc) · 1.42 KB
/
Binarytree
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
class Binarytree:
def _init_(self,data):
self.data = data
self.left = None
self.right = None
def addChild(self, data):
if data == self.data:
return
if data < self.data:
if self.left:
self.left.addChild(data)
else:
self.left = Binarytree(data)
else:
if self.right:
self.right.addChild(data)
else:
self.right = Binarytree(data)
def inorder(self):
element = [ ]
if self.left:
element += self.left.inorder()
element.append(self.data)
if self.right:
element += self.right.inorder()
return element
def search(self,val):
if val == self.data:
return True
if val < self.data:
if self.left:
return self.left.search(val)
else:
return False
else:
if self.right:
return self.right.search(val)
else:
return False
def buildtree(element):
root = Binarytree(element[0])
for i in range(1,len(element)):
root.addChild(element[i])
return root
if _name_ == '_main_':
element = [39, 87, 21, 42, 95, 52, 12]
tree = buildtree(element)
print(tree.inorder())
print(tree.search(38))