NodeT* insertNode(NodeT* node, int data) { if (node == NULL) return(createNode(data)); else if (data < node->data) node->left = insertNode(node->left, data); else node->right = insertNode(node->right, data); node->height = max(findHeight(node->left), findHeight(node->right))+1; int bal=getBalance(node); if (bal>1 && data < node->left->data) return rightRot(node); if (bal<-1 && data>node->right->data) return leftRot(node); if (bal>1 && data>node->left->data) { node->left =leftRot(node->left); return rightRot(node); } if (bal<-1 && data<node->right->data) { node->right =rightRot(node->right); return leftRot(node); } return node; }
void pixPat::rotateLeft(uint8_t num) { short n = (num << 1) + num; // bytes per pixel (x3) leftRot((uint8_t *)color, n); }