Ir ao conteúdo
  • Cadastre-se

Transformar procedimento recursivo em não-recursivo


igor3m

Posts recomendados

Boa Noite,

tentei transformar esse procedimento recursivo em não-recursivo mas acho que não está certo.

Gostaria de saber como posso fazer isso


/*Recursivo*/

void Antecessor(Apontador q, Apontador *r){
if ((*r)->Dir != NULL)
Antecessor(q, &(*r)->Dir); //<--- recursividade
else {
q->Reg=(*r)->Reg;
q=*r;
*r=(*r)->Esq;
free(q);
}
}


/*Tentativa de transformar para não recursivo*/
void Antecessor(Apontador q, Apontador *r) {
while ((*r)->Dir != NULL)
{
*r=((*r)->Dir);
return;
}
q->Reg = (*r)->Reg;
q = *r;
*r = (*r)->Esq;
free(q);
}

É um código de árvore binária de pesquisa. Acho que não é necessário meu arquivo todo porque preciso saber só como trabalhar com essa recursão. (Continuo usando o while ou outro laço?).

Desde já agradeço.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!