Lines Matching refs:balance
108 * Small arrays to translate between balance (or diff) values and child indices.
289 * Perform a rotation to restore balance at the subtree given by depth.
299 * On input balance is the "new" balance at "node". This value is either
303 avl_rotation(avl_tree_t *tree, avl_node_t *node, int balance)
305 int left = !(balance < 0); /* when balance = -2, left will be 0 */
307 int left_heavy = balance >> 1;
341 * we detect this situation by noting that child's balance is not
348 * compute new balance of nodes
448 balance = AVL_XBALANCE(gchild);
450 AVL_SETBALANCE(child, (balance == right_heavy ? left_heavy : 0));
455 AVL_SETBALANCE(node, (balance == left_heavy ? right_heavy : 0));
479 * be necessary to maintain an acceptable AVL balance.
517 * Now, back up the tree modifying the balance of all nodes above the
520 * If we brought any subtree into perfect balance (0), we are also done.
528 * Compute the new balance
534 * If we introduced equal balance, then we are done immediately
543 * from -1 to -2 balance, do a rotation.
672 * rotation to fix the balance. This is handled by moving up the tree through
788 * Move up the tree and adjust the balance
800 * If a node was in perfect balance but isn't anymore then
810 * If the new balance is zero, we don't need to rotate
812 * need a rotation to fix the balance.
1041 * child on the right (when balance == +1).