BinaryNode<ItemType>* leftRotate(BinaryNode<ItemType>* x) { BinaryNode<ItemType>* y = x->getRightChildPtr(); BinaryNode<ItemType>* T2 = y->getLeftChildPtr(); y->setLeftChildPtr(x); x->setRightChildPtr(T2); x->setHeight(max(height(x->getLeftChildPtr()), height(x->getRightChildPtr()))+1); y->setHeight(max(height(y->getLeftChildPtr()), height(y->getRightChildPtr()))+1); return y; }
BinaryNode<ItemType>* rightRotate(BinaryNode<ItemType>* y) { BinaryNode<ItemType>* x = y->getLeftChildPtr(); BinaryNode<ItemType>* T2 = x->getRightChildPtr(); x->setRightChildPtr(y); y->setLeftChildPtr(T2); y->setHeight(max(height(y->getLeftChildPtr()), height(y->getRightChildPtr()))+1); x->setHeight(max(height(x->getLeftChildPtr()), height(x->getRightChildPtr()))+1); return x; }