tipoNo* balanceamentoCaso3(tipoNo* raiz, tipoNo* n){ if(verificaCor(noTio(n)) == RUB){ n->noPai->cor = NEG; noTio(n)->cor = NEG; noAvo(n)->cor = RUB; return balanceamentoCaso1(raiz, noAvo(n)); } else{ return balanceamentoCaso4(raiz, n); } }
NO* balanceamentoCaso3(NO* raiz, NO* n) { if(verificaCor(noTio(n)) == RUB) { /*tem pai vermelho e tio vermelho, troca as cores*/ n->pai->cor = NEG; /*Trocando a cor do pai, já que quando insere com vermelho, o pai nao pode ser também.*/ noTio(n)->cor = NEG; /*Trocando a cor do tio*/ noAvo(n)->cor = RUB;/*Trocando a cor do avô, para assim ficar: V, P, V*/ return balanceamentoCaso1(raiz, noAvo(n));/*Caso o noAvo ja seja a raiz, entao nao pode ficar vermelha como deixei, vai cair no caso1 para deixar a raiz preta e retornar raiz.*/ } else { return balanceamentoCaso4(raiz, n); } }