in java/src/main/java/com/epam/deltix/containers/AvlTree.java [119:137]
private void rightFix(AvlTreeNode<TKey, TValue> node, AvlTreeNode<TKey, TValue> parent)
{
int leftHeight = node.left == null ? 0 : node.left.height;
int rightHeight = node.right == null ? 0 : node.right.height;
if (leftHeight + 1 < rightHeight)
{
AvlTreeNode<TKey, TValue> r = node.right;
leftHeight = r.left == null ? 0 : r.left.height;
rightHeight = r.right == null ? 0 : r.right.height;
if (rightHeight < leftHeight)
rotateRight(r.left, r, node);
rotateLeft(node, node.right, parent);
}
leftHeight = node.left == null ? 0 : node.left.height;
rightHeight = node.right == null ? 0 : node.right.height;
node.height = 1 + Math.max(leftHeight, rightHeight);
node.count = 1 + (node.left == null ? 0 : node.left.count) + (node.right == null ? 0 : node.right.count);
}