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

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

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

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

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

    return Y;
}