In this article we will learn about some of the frequently asked Python programming questions in technical like “python code for binary search tree” Code Answer. When creating scripts and web applications, error handling is an important part. If your code lacks error checking code, your program may look very unprofessional and you may be open to security risks. Error handling in Python is simple. An error message with filename, line number and a message describing the error is sent to the browser. This tutorial contains some of the most common error checking methods in Python. Below are some solution about “python code for binary search tree” Code Answer.
python code for binary search tree
xxxxxxxxxx
1
#Complete Binary Search Tree Using Python 3
2
3
class node:
4
def __init__(self,data):
5
self.data=data
6
self.left=None
7
self.right=None
8
9
class binarytree:
10
def __init__(self):
11
self.root=None
12
13
#INSERT
14
15
def insert(self,data):
16
if self.root==None:
17
self.root=node(data)
18
else:
19
self._insert(data,self.root)
20
def _insert(self,data,cur_node):
21
if data<cur_node.data:
22
if cur_node.left==None:
23
cur_node.left=node(data)
24
else:
25
self._insert(data,cur_node.left)
26
elif data>cur_node.data:
27
if cur_node.right==None:
28
cur_node.right=node(data)
29
else:
30
self._insert(data,cur_node.right)
31
else:
32
print('Data In Treee Already')
33
34
#REMOVE
35
36
def remove(self,data):
37
if self.root!=None:
38
self._remove(data,self.root)
39
def _remove(self,data,cur_node):
40
if cur_node == None:
41
return cur_node
42
if data<cur_node.data:
43
cur_node.left=self._remove(data,cur_node.left)
44
elif data>cur_node.data:
45
cur_node.right=self._remove(data,cur_node.right)
46
else:
47
if cur_node.left is None and cur_node.right is None:
48
print('Removing Leaf Node')
49
if cur_node==self.root:
50
self.root=None
51
del cur_node
52
return None
53
if cur_node.left is None:
54
print('Removing None with Right Child')
55
if cur_node==self.root:
56
self.root=cur_node.right
57
tempnode=cur_node.right
58
del cur_node
59
return tempnode
60
elif cur_node.right is None:
61
print('Removing None with Left Child')
62
if cur_node==self.root:
63
self.root=cur_node.left
64
tempnode=cur_node.left
65
del cur_node
66
return tempnode
67
print('Removing Node with 2 Children')
68
tempnode=self.getpred(cur_node.left)
69
cur_node.data=tempnode.data
70
cur_node.left=self._remove(cur_node.data,cur_node.left)
71
return cur_node
72
def getpred(self,cur_node):
73
if cur_node.right!=None:
74
return self.getpred(cur_node.right)
75
return cur_node
76
77
#INORDER TRAVERSAL
78
79
def inorder(self):
80
if self.root!=None:
81
self._inorder(self.root)
82
def _inorder(self,cur_node):
83
if cur_node!=None:
84
self._inorder(cur_node.left)
85
print(cur_node.data)
86
self._inorder(cur_node.right)
87
88
#PREORDER TRAVERSAL
89
90
def preorder(self):
91
if self.root!=None:
92
self._preorder(self.root)
93
def _preorder(self,cur_node):
94
if cur_node!=None:
95
print(cur_node.data)
96
self._preorder(cur_node.left)
97
self._preorder(cur_node.right)
98
99
#POSTORDER TRAVERSAL
100
101
def postorder(self):
102
if self.root!=None:
103
self._postorder(self.root)
104
def _postorder(self,cur_node):
105
if cur_node!=None:
106
self._postorder(cur_node.left)
107
self._postorder(cur_node.right)
108
print(cur_node.data)
109
110
#MINIMUM VALUE
111
112
def minval(self):
113
if self.root!=None:
114
return self._minval(self.root)
115
def _minval(self,cur_node):
116
if cur_node.left!=None:
117
return self._minval(cur_node.left)
118
return cur_node.data
119
120
#MAXIMUM VALUE
121
122
def maxval(self):
123
if self.root!=None:
124
return self._maxval(self.root)
125
def _maxval(self,cur_node):
126
if cur_node.right!=None:
127
return self._maxval(cur_node.right)
128
return cur_node.data
129
130
tree=binarytree()
131
132
tree.insert(100)
133
tree.insert(90) # 100
134
tree.insert(110) # /
135
tree.insert(95) # 90 110
136
tree.insert(30) # /
137
# 30 95
138
tree.remove(110)
139
tree.remove(90)
140
141
tree.inorder()
142
#tree.preorder()
143
#tree.postorder()
144
145
print(tree.minval())
146
print(tree.maxval())