2
I have this code:
Arvore* arv_insere (Arvore* arvore, Registro* registro){
if (arvore == NULL){
printf(COLOR_RED "ERROR: Arvore não inicializada" COLOR_RESET "\n");
exit(1);
}
float direction = reg_compare(arvore->label, registro);
if (direction == 0.0){
printf(COLOR_RED "ERROR: Não permitimos chaves repetidas" COLOR_RESET "\n");
exit(1);
}
bool isTaller; // Avisa se a árvore filha que foi modificada ficou
// maior ou menor.
if (direction < 0) {
if (arvore->esq == NULL){
arvore->esq = arv_cria(registro);
// Ajustando balanceamento do nó criado e do nó atual.
arvore->esq->balanceamento = 0;
isTaller = true;
arvore->balanceamento = arvore->balanceamento - 1;
} else {
arvore->esq = arv_insere(arvore->esq, registro);
isTaller = arvore->esq->sizeChanged;
if (isTaller) {
arvore->balanceamento = arvore->balanceamento -1 ;
}
}
} else {
if (arvore->dir == NULL){
arvore->dir = arv_cria(registro);
// Ajustando balanceamento do nó criado e do nó atual.
arvore->dir->balanceamento = 0;
isTaller = true;
arvore->balanceamento = arvore->balanceamento + 1;
} else {
arvore->dir = arv_insere(arvore->dir, registro);
isTaller = arvore->dir->sizeChanged;
if (isTaller) {
arvore->balanceamento = arvore->balanceamento + 1;
}
}
}
// Nos veremos se geramos um balanceamento neste no da arvore. Se
// tivermos gerado, então balancearemos a árvore.
Arvore* nArvore = performRotations(arvore);
if (isTaller && nArvore->balanceamento == 0) {
nArvore->sizeChanged = false;
} else {
nArvore->sizeChanged = isTaller;
}
printf("SIZE CHANGED: %d \n" , nArvore->sizeChanged);
return nArvore;
}
In this code, which makes the following excerpt?
if (isTaller && nArvore->balanceamento == 0) {
nArvore->sizeChanged = false;
} else {
nArvore->sizeChanged = isTaller;
}
Sorry for the poor preparation of the question. But you answered perfectly what I would like to know!
– Pablo Borsone
@Pabloborsone Your question is not poorly elaborated, at least not compared to others that are dumped on this site every day. There is room for improvements in the code posted but until it is reasonable.
– Victor Stafusa
@Pabloborsone If this answer solved your problem and you have no questions left, mark it as accepted/correct by clicking on " " here on the side, which also marks your question as answered/solved. If on the other hand you are not yet satisfied, leave a comment and we will clarify.
– Victor Stafusa
Ready! Thank you so much! D
– Pablo Borsone