MCPcopy
hub / github.com/Jack-Lee-Hiter/AlgorithmsByPython / rotateLeft

Method rotateLeft

AVL.py:92–108  ·  view source on GitHub ↗
(self, rotRoot)

Source from the content-addressed store, hash-verified

90 self.updateBalance(node.parent)
91
92 def rotateLeft(self, rotRoot):
93 newRoot = rotRoot.rightChild
94 rotRoot.rightChild = newRoot.leftChild
95 if newRoot.leftChild != None:
96 newRoot.leftChild.parent = rotRoot
97 newRoot.parent = rotRoot.parent
98 if rotRoot.isRoot():
99 self.root = newRoot
100 else:
101 if rotRoot.isLeftChild():
102 rotRoot.parent.leftChild = newRoot
103 else:
104 rotRoot.parent.rightChild = newRoot
105 newRoot.leftChild = rotRoot
106 rotRoot.parent = newRoot
107 rotRoot.balanceFactor = rotRoot.balanceFactor + 1 - min(newRoot.balanceFactor, 0)
108 newRoot.balanceFactor = newRoot.balanceFactor + 1 + max(rotRoot.balanceFactor, 0)
109
110 def rotateRight(self, rotRoot):
111 newRoot = rotRoot.leftChild

Callers 1

rebalanceMethod · 0.95

Calls 2

isRootMethod · 0.45
isLeftChildMethod · 0.45

Tested by

no test coverage detected