Esempio n. 1
0
/*!
*Realiza uma rotação simples à direita e retorna o resultado da rotação.
* @param nodo O nodo que será rebalanceado.
*/
    NoAVL<T>* simp_roda_dir(NoAVL<T>* nodo) {
        NoAVL<T>* temporario;

        temporario = nodo->getDireita();
        nodo->direita = temporario->getEsquerda();
        temporario->esquerda = nodo;

        this->atualizaAltura(temporario);
        this->atualizaAltura(nodo);
        return temporario;
    }
NoAVL<T>* NoAVL<T>::rotacaoSimplesDireita(NoAVL<T>* X) {
    NoAVL<T>* Y;

    Y = X->getDireita();
    X->direita = Y->getEsquerda();
    Y->esquerda = X;

    this->atualizaAltura(Y);
    this->atualizaAltura(X);

    return Y;
}