File tree 1 file changed +78
-0
lines changed
1 file changed +78
-0
lines changed Original file line number Diff line number Diff line change
1
+
2
+ class Node :
3
+ def __init__ (self , key ):
4
+ self .key = key
5
+ self .left = None
6
+ self .right = None
7
+
8
+ def inorder (root ):
9
+ if root is not None :
10
+ inorder (root .left )
11
+ print root .key ,
12
+ inorder (root .right )
13
+
14
+ def insert ( node , key ):
15
+
16
+ if node is None :
17
+ return Node (key )
18
+
19
+ if key < node .key :
20
+ node .left = insert (node .left , key )
21
+ else :
22
+ node .right = insert (node .right , key )
23
+
24
+ return node
25
+
26
+ def minValueNode ( node ):
27
+ current = node
28
+
29
+ while (current .left is not None ):
30
+ current = current .left
31
+
32
+ return current
33
+
34
+ def deleteNode (root , key ):
35
+
36
+ if root is None :
37
+ return root
38
+
39
+ if key < root .key :
40
+ root .left = deleteNode (root .left , key )
41
+
42
+ elif (key > root .key ):
43
+ root .right = deleteNode (root .right , key )
44
+
45
+ else :
46
+ if root .left is None :
47
+ temp = root .right
48
+ root = None
49
+ return temp
50
+
51
+ elif root .right is None :
52
+ temp = root .left
53
+ root = None
54
+ return temp
55
+
56
+ temp = minValueNode (root .right )
57
+ root .key = temp .key
58
+ root .right = deleteNode (root .right , temp .key )
59
+
60
+
61
+ return root
62
+
63
+ root = None
64
+ root = insert (root , 58 )
65
+ root = insert (root , 32 )
66
+ root = insert (root , 8 )
67
+ root = insert (root , 59 )
68
+ root = insert (root , 98 )
69
+ root = insert (root , 6 )
70
+ root = insert (root , 4 )
71
+ inorder (root )
72
+ root = deleteNode (root , 59 )
73
+ inorder (root )
74
+ root = deleteNode (root , 98 )
75
+ inorder (root )
76
+ root = deleteNode (root , 4 )
77
+ inorder (root )
78
+
You can’t perform that action at this time.
0 commit comments