@@ -7,9 +7,6 @@ class Node:
7
7
8
8
def __init__ (self , label ):
9
9
self .label = label
10
- self .left = None
11
- self .rigt = None
12
- self .parent = None
13
10
self .height = 0
14
11
15
12
@property
@@ -23,7 +20,7 @@ def right(self, node):
23
20
24
21
@property
25
22
def left (self ):
26
- return self .parent
23
+ return self .left
27
24
28
25
@left .setter
29
26
def left (self , node ):
@@ -48,6 +45,7 @@ def __init__(self):
48
45
49
46
def insert (self , value ):
50
47
node = Node (value )
48
+
51
49
if self .root is None :
52
50
self .root = node
53
51
self .root .height = 0
@@ -65,7 +63,7 @@ def insert(self, value):
65
63
if node .label < curr_node .label :
66
64
curr_node = curr_node .left
67
65
else :
68
- curr_node = curr_node .rigt
66
+ curr_node = curr_node .right
69
67
else :
70
68
if node .label < dad_node .label :
71
69
dad_node .left = node
@@ -92,20 +90,20 @@ def rebalance(self, node):
92
90
93
91
if abs (height_left - height_right ) > 1 :
94
92
if height_left > height_right :
95
- left_child = node .getRight ()
93
+ # left_child = node.getRight()
96
94
if ():
97
95
self .rotate_left (n )
98
96
break
99
97
else :
100
98
self .double_rotate_right (n )
101
99
break
102
100
else :
103
- right_child = node .getRight ()
101
+ right_child = node .right
104
102
if right_child is not None :
105
- h_right = (right_child .getRight (). getHeight ()
106
- if (right_child .getRight () is not None ) else 0 )
107
- h_left = (right_child .getLeft (). getHeight ()
108
- if (right_child .getLeft () is not None ) else 0 )
103
+ h_right = (right_child .right . height
104
+ if (right_child .right is not None ) else 0 )
105
+ h_left = (right_child .left . height
106
+ if (right_child .left is not None ) else 0 )
109
107
110
108
if (h_left > h_right ):
111
109
self .double_rotate_left (n )
@@ -119,9 +117,13 @@ def rotate_left(self, node):
119
117
pass
120
118
121
119
def rotate_right (self , node ):
122
- n = Node (node .getLabel ())
123
- n .setRight (node .getRight ())
124
- n .setLeft (Node (node .getParent ().getLabel ()))
120
+ aux = node .parent
121
+ node .parent = node
122
+ node .left = aux
123
+
124
+ print (node .parent .label )
125
+ print (node .parent .right .label )
126
+ print (node .parent .left .label )
125
127
126
128
def double_rotate_left (self , node ):
127
129
self .rotate_right (node .getRight ().getRight ())
0 commit comments