Lines Matching +full:balanced +full:- +full:match
11 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
42 return node->height; in GetAvlTreeHeight()
49 uint32_t leftHeight = GetAvlTreeHeight(node->leftNode); in UpdateAvlTreeHeight()
50 uint32_t rightHeight = GetAvlTreeHeight(node->rightNode); in UpdateAvlTreeHeight()
51 if (node->height >= AVL_MAX_HEIGHT) { in UpdateAvlTreeHeight()
56 node->height = GetMaxHeight(leftHeight, rightHeight) + 1u; in UpdateAvlTreeHeight()
69 curNode->height = 1; in BSL_AVL_MakeLeafNode()
70 curNode->rightNode = NULL; in BSL_AVL_MakeLeafNode()
71 curNode->leftNode = NULL; in BSL_AVL_MakeLeafNode()
72 curNode->data = data; in BSL_AVL_MakeLeafNode()
86 5 20 --Rotate Left---> 10 30 in AVL_RotateLeft()
91 BSL_AvlTree *rNode = root->rightNode; in AVL_RotateLeft()
92 BSL_AvlTree *lNode = rNode->leftNode; in AVL_RotateLeft()
93 root->rightNode = lNode; in AVL_RotateLeft()
94 rNode->leftNode = root; in AVL_RotateLeft()
110 30 50 --Rotate Right---> 20 40 in AVL_RotateRight()
114 BSL_AvlTree *lNode = root->leftNode; in AVL_RotateRight()
115 BSL_AvlTree *rNode = lNode->rightNode; in AVL_RotateRight()
116 root->leftNode = rNode; in AVL_RotateRight()
117 lNode->rightNode = root; in AVL_RotateRight()
125 * @param root [IN] Root node to be balanced
131 if ((GetAvlTreeHeight(root->leftNode) + 1u) >= GetAvlTreeHeight(root->rightNode)) { in AVL_RebalanceRight()
136 BSL_AvlTree *curNode = root->rightNode; in AVL_RebalanceRight()
137 if (GetAvlTreeHeight(curNode->leftNode) > GetAvlTreeHeight(curNode->rightNode)) { in AVL_RebalanceRight()
138 root->rightNode = AVL_RotateRight(curNode); in AVL_RebalanceRight()
145 * @param root [IN] Root node to be balanced
151 if ((GetAvlTreeHeight(root->rightNode) + 1u) >= GetAvlTreeHeight(root->leftNode)) { in AVL_RebalanceLeft()
156 BSL_AvlTree *curNode = root->leftNode; in AVL_RebalanceLeft()
157 if (GetAvlTreeHeight(curNode->rightNode) > GetAvlTreeHeight(curNode->leftNode)) { in AVL_RebalanceLeft()
158 root->leftNode = AVL_RotateLeft(curNode); in AVL_RebalanceLeft()
173 node->nodeId = nodeId; in BSL_AVL_InsertNode()
177 if (root->nodeId > nodeId) { in BSL_AVL_InsertNode()
179 root->leftNode = BSL_AVL_InsertNode(root->leftNode, nodeId, node); in BSL_AVL_InsertNode()
182 } else if (root->nodeId < nodeId) { in BSL_AVL_InsertNode()
184 root->rightNode = BSL_AVL_InsertNode(root->rightNode, nodeId, node); in BSL_AVL_InsertNode()
199 // match the node in BSL_AVL_SearchNode()
200 if (curNode->nodeId == nodeId) { in BSL_AVL_SearchNode()
202 } else if (curNode->nodeId > nodeId) { in BSL_AVL_SearchNode()
204 curNode = curNode->leftNode; in BSL_AVL_SearchNode()
207 curNode = curNode->rightNode; in BSL_AVL_SearchNode()
227 if (rmNodeChild->rightNode == NULL) { in AVL_DeleteNodeWithTwoChilds()
229 BSL_AvlTree *curNode = rmNodeChild->leftNode; in AVL_DeleteNodeWithTwoChilds()
230 removeNode->nodeId = rmNodeChild->nodeId; in AVL_DeleteNodeWithTwoChilds()
231 removeNode->data = rmNodeChild->data; in AVL_DeleteNodeWithTwoChilds()
237 rmNodeChild->rightNode = AVL_DeleteNodeWithTwoChilds(rmNodeChild->rightNode, removeNode); in AVL_DeleteNodeWithTwoChilds()
247 if (root->nodeId == nodeId) { in BSL_AVL_DeleteNode()
248 if (root->leftNode == NULL) { in BSL_AVL_DeleteNode()
249 if (root->rightNode == NULL) { in BSL_AVL_DeleteNode()
251 AVL_FreeData(root->data, func); in BSL_AVL_DeleteNode()
256 BSL_AvlTree *curNode = root->rightNode; in BSL_AVL_DeleteNode()
257 AVL_FreeData(root->data, func); in BSL_AVL_DeleteNode()
261 } else if (root->rightNode == NULL) { in BSL_AVL_DeleteNode()
263 BSL_AvlTree *curNode = root->leftNode; in BSL_AVL_DeleteNode()
264 AVL_FreeData(root->data, func); in BSL_AVL_DeleteNode()
269 AVL_FreeData(root->data, func); in BSL_AVL_DeleteNode()
270 root->leftNode = AVL_DeleteNodeWithTwoChilds(root->leftNode, root); in BSL_AVL_DeleteNode()
275 if (root->nodeId > nodeId) { in BSL_AVL_DeleteNode()
276 root->leftNode = BSL_AVL_DeleteNode(root->leftNode, nodeId, func); in BSL_AVL_DeleteNode()
279 root->rightNode = BSL_AVL_DeleteNode(root->rightNode, nodeId, func); in BSL_AVL_DeleteNode()
290 BSL_AVL_DeleteTree(root->leftNode, func); in BSL_AVL_DeleteTree()
291 BSL_AVL_DeleteTree(root->rightNode, func); in BSL_AVL_DeleteTree()
292 AVL_FreeData(root->data, func); in BSL_AVL_DeleteTree()