AVL
AVL
leftNode->pRight = root;
root->pLeft = rightleftNode;
return leftNode;
}
rightNode->pLeft = root;
root->pRight = leftrightNode;
return rightNode;
}
2.
//Helping functions
Node* rightRotate(Node* node) {
Node* leftNode = node->pLeft;
Node* rightleftNode = leftNode->pRight;
leftNode->pRight = node;
node->pLeft = rightleftNode;
return leftNode;
}
rightNode->pLeft = node;
node->pRight = leftrightNode;
return rightNode;
}
3.
//Helping functions
Node* rightRotate(Node* node) {
Node* leftNode = node->pLeft;
Node* rightleftNode = leftNode->pRight;
leftNode->pRight = node;
node->pLeft = rightleftNode;
return leftNode;
}
rightNode->pLeft = node;
node->pRight = leftrightNode;
return rightNode;
}
5.
//Helping functions
Node* minValue(Node* node) {
Node* itr = node;
while (itr->pRight != NULL) {
itr = itr->pRight;
}
return itr;
}
leftNode->pRight = node;
node->pLeft = rightleftNode;
return leftNode;
}
rightNode->pLeft = node;
node->pRight = leftrightNode;
return rightNode;
}
7.
void printInorder(Node* node) {
if (node == NULL) {
return;
}
else {
printInorder(node->pLeft);
cout << node->data << " ";
printInorder(node->pRight);
}
}
void printInorder(){
//TODO
printInorder(root);
}