@@ -3,6 +3,7 @@ def __init__(self,key):
3
3
self .key = key
4
4
self .lchild = None
5
5
self .rchild = None
6
+
6
7
def insert (self ,data ):
7
8
if self .key is None :
8
9
self .key = data
@@ -21,6 +22,7 @@ def insert(self,data):
21
22
else :
22
23
self .lchild = BST (data )
23
24
return
25
+
24
26
def search (self ,data ):
25
27
if self .key == data :
26
28
print ("Node is Found" )
@@ -36,16 +38,85 @@ def search(self,data):
36
38
delf .lchild .search (data )
37
39
else :
38
40
print ("Node is NOT found" )
41
+ def preorder (self ):
42
+ print (self .key , end = ", " )
43
+ if self .lchild :
44
+ self .lchild .preorder ()
45
+ if self .rchild :
46
+ self .rchild .preorder ()
47
+
48
+ def inorder (self ):
49
+ if self .lchild :
50
+ self .lchild .inorder ()
51
+ print (self .key , end = ", " )
52
+ if self .rchild :
53
+ self .rchild .inorder ()
54
+
55
+ def postorder (self ):
56
+ if self .lchild :
57
+ self .lchild .postorder ()
58
+ if self .rchild :
59
+ self .rchild .postorder ()
60
+ print (self .key , end = ", " )
39
61
62
+ def delete (self ,data ):
63
+ if self .key is None :
64
+ print ("BST is empty" )
65
+ if data < self .key :
66
+ self .lchild = self .lchild .delete ()
40
67
41
-
68
+ def delete (self ,data ):
69
+ if self .key is None :
70
+ print ("Tree is Empty!" )
71
+ elif data > self .key :
72
+ if self .rchild :
73
+ self .rchild = self .rchild .delete (data )
74
+ else :
75
+ print ("Node is Not Present " )
76
+ elif data < self .key :
77
+ if self .lchild :
78
+ self .lchild = self .lchild .delete (data )
79
+ else :
80
+ print ("Node is not present" )
81
+ else :
82
+ if self .lchild is None :
83
+ temp = self .rchild
84
+ self = None
85
+ return temp
86
+ if self .rchild is None :
87
+ temp = self .lchild
88
+ self = None
89
+ return temp
90
+ node = self .rchild
91
+ while node .lchild :
92
+ node = node .lchild
93
+ self .key = node .key
94
+ self .rchild = self .rchild .delete (node .key )
95
+ return self
96
+
97
+
98
+
99
+
100
+
101
+
42
102
root = BST (10 )
43
- ll = [1 ,2 ,33 ,23 ,12 ,33 ,12 ,12 , 31 , 12 , 222 , 333 , 456 ,6667 , 77777 , 51 ]
103
+ ll = [1 ,2 ,33 ,23 ,12 ,33 ,12 ,456 ,66 , 51 ]
44
104
for i in ll :
45
105
root .insert (i )
46
- root .search (222 )
106
+ print ("Preorder" )
107
+ root .preorder ()
108
+ '''
109
+ print()
110
+ print("Inorder")
111
+ root.inorder()
47
112
48
-
113
+ print()
114
+ print("Postorder")
115
+ root.postorder()
49
116
117
+ '''
118
+ print ("----------------------" )
119
+ root .delete (51 )
120
+ root .preorder ()
50
121
51
122
0 commit comments