if (isBlack(getLeftChild(siblingNode, index), index) && isBlack(getRightChild(siblingNode, index), index)) { } else { if (isBlack(getRightChild(siblingNode, index), index)) { makeBlack(getLeftChild(siblingNode, index), index); makeRed(siblingNode, index); rotateRight(siblingNode, index); Node siblingNode = getLeftChild(getParent(currentNode, index), index); siblingNode = getLeftChild(getParent(currentNode, index), index); && isBlack(getLeftChild(siblingNode, index), index)) { makeRed(siblingNode, index); if (isBlack(getLeftChild(siblingNode, index), index)) { makeBlack(getRightChild(siblingNode, index), index); makeRed(siblingNode, index); getLeftChild(getParent(currentNode, index), index); index); makeBlack(getParent(currentNode, index), index); makeBlack(getLeftChild(siblingNode, index), index); rotateRight(getParent(currentNode, index), index);
if (isBlack(getLeftChild(siblingNode, index), index) && isBlack(getRightChild(siblingNode, index), index)) { } else { if (isBlack(getRightChild(siblingNode, index), index)) { makeBlack(getLeftChild(siblingNode, index), index); makeRed(siblingNode, index); rotateRight(siblingNode, index); Node siblingNode = getLeftChild(getParent(currentNode, index), index); siblingNode = getLeftChild(getParent(currentNode, index), index); && isBlack(getLeftChild(siblingNode, index), index)) { makeRed(siblingNode, index); if (isBlack(getLeftChild(siblingNode, index), index)) { makeBlack(getRightChild(siblingNode, index), index); makeRed(siblingNode, index); getLeftChild(getParent(currentNode, index), index); index); makeBlack(getParent(currentNode, index), index); makeBlack(getLeftChild(siblingNode, index), index); rotateRight(getParent(currentNode, index), index);
Node y = getLeftChild(getGrandParent(currentNode, index), index);
Node y = getLeftChild(getGrandParent(currentNode, index), index);
if (isBlack(getLeftChild(siblingNode, index), index) && isBlack(getRightChild(siblingNode, index), index)) { } else { if (isBlack(getRightChild(siblingNode, index), index)) { makeBlack(getLeftChild(siblingNode, index), index); makeRed(siblingNode, index); rotateRight(siblingNode, index); Node siblingNode = getLeftChild(getParent(currentNode, index), index); siblingNode = getLeftChild(getParent(currentNode, index), index); && isBlack(getLeftChild(siblingNode, index), index)) { makeRed(siblingNode, index); if (isBlack(getLeftChild(siblingNode, index), index)) { makeBlack(getRightChild(siblingNode, index), index); makeRed(siblingNode, index); getLeftChild(getParent(currentNode, index), index); index); makeBlack(getParent(currentNode, index), index); makeBlack(getLeftChild(siblingNode, index), index); rotateRight(getParent(currentNode, index), index);
if (isBlack(getLeftChild(siblingNode, index), index) && isBlack(getRightChild(siblingNode, index), index)) { } else { if (isBlack(getRightChild(siblingNode, index), index)) { makeBlack(getLeftChild(siblingNode, index), index); makeRed(siblingNode, index); rotateRight(siblingNode, index); Node siblingNode = getLeftChild(getParent(currentNode, index), index); siblingNode = getLeftChild(getParent(currentNode, index), index); && isBlack(getLeftChild(siblingNode, index), index)) { makeRed(siblingNode, index); if (isBlack(getLeftChild(siblingNode, index), index)) { makeBlack(getRightChild(siblingNode, index), index); makeRed(siblingNode, index); getLeftChild(getParent(currentNode, index), index); index); makeBlack(getParent(currentNode, index), index); makeBlack(getLeftChild(siblingNode, index), index); rotateRight(getParent(currentNode, index), index);
if (isBlack(getLeftChild(siblingNode, index), index) && isBlack(getRightChild(siblingNode, index), index)) { } else { if (isBlack(getRightChild(siblingNode, index), index)) { makeBlack(getLeftChild(siblingNode, index), index); makeRed(siblingNode, index); rotateRight(siblingNode, index); Node siblingNode = getLeftChild(getParent(currentNode, index), index); siblingNode = getLeftChild(getParent(currentNode, index), index); && isBlack(getLeftChild(siblingNode, index), index)) { makeRed(siblingNode, index); if (isBlack(getLeftChild(siblingNode, index), index)) { makeBlack(getRightChild(siblingNode, index), index); makeRed(siblingNode, index); getLeftChild(getParent(currentNode, index), index); index); makeBlack(getParent(currentNode, index), index); makeBlack(getLeftChild(siblingNode, index), index); rotateRight(getParent(currentNode, index), index);
if (isBlack(getLeftChild(siblingNode, index), index) && isBlack(getRightChild(siblingNode, index), index)) { } else { if (isBlack(getRightChild(siblingNode, index), index)) { makeBlack(getLeftChild(siblingNode, index), index); makeRed(siblingNode, index); rotateRight(siblingNode, index); Node siblingNode = getLeftChild(getParent(currentNode, index), index); siblingNode = getLeftChild(getParent(currentNode, index), index); && isBlack(getLeftChild(siblingNode, index), index)) { makeRed(siblingNode, index); if (isBlack(getLeftChild(siblingNode, index), index)) { makeBlack(getRightChild(siblingNode, index), index); makeRed(siblingNode, index); getLeftChild(getParent(currentNode, index), index); index); makeBlack(getParent(currentNode, index), index); makeBlack(getLeftChild(siblingNode, index), index); rotateRight(getParent(currentNode, index), index);
if (isBlack(getLeftChild(siblingNode, index), index) && isBlack(getRightChild(siblingNode, index), index)) { } else { if (isBlack(getRightChild(siblingNode, index), index)) { makeBlack(getLeftChild(siblingNode, index), index); makeRed(siblingNode, index); rotateRight(siblingNode, index); Node siblingNode = getLeftChild(getParent(currentNode, index), index); siblingNode = getLeftChild(getParent(currentNode, index), index); && isBlack(getLeftChild(siblingNode, index), index)) { makeRed(siblingNode, index); if (isBlack(getLeftChild(siblingNode, index), index)) { makeBlack(getRightChild(siblingNode, index), index); makeRed(siblingNode, index); getLeftChild(getParent(currentNode, index), index); index); makeBlack(getParent(currentNode, index), index); makeBlack(getLeftChild(siblingNode, index), index); rotateRight(getParent(currentNode, index), index);
Node y = getLeftChild(getGrandParent(currentNode, index), index);
Node y = getLeftChild(getGrandParent(currentNode, index), index);
Node y = getLeftChild(getGrandParent(currentNode, index), index);
Node y = getLeftChild(getGrandParent(currentNode, index), index);
Node y = getLeftChild(getGrandParent(currentNode, index), index);