Julio_EngHaw Postado Abril 21, 2011 Denunciar Share Postado Abril 21, 2011 Pessoal, to precisando desse algoritmo....porem não to conseguindo, sei pouco sobre arvores, eu tentei fazer algo, porem ele não funciona....dá erros nas condiçõesde existencia de uma Arvore Binaria(pai ser maior que o filho)Vejam no que podem me ajudar//Estrutura da Arvoretypedef long TipoChave; typedef struct Registro { TipoChave Chave; /* outros componentes */ } Registro; typedef struct No * Apontador; typedef struct No { Registro Reg; Apontador Esq, Dir; } No; typedef Apontador TipoDicionario; //Codigo de Retirar void Retira (Registro x, Apontador *p){ Apontador q = NULL; Apontador Aux = *p; while (x.Chave != Aux->Reg.Chave || p == NULL){ q = Aux; if ((x).Chave < Aux->Reg.Chave){ Aux = Aux->Esq; } if ((x).Chave > Aux->Reg.Chave){ Aux = Aux->Dir; } if (Aux->Dir == NULL){ *p = (*p)->Esq; free(Aux); return; } if (Aux->Esq != NULL) { Antecessor(*p, &Aux->Esq); return; } else printf("Erro : Registro não esta presente na arvore\n"); } }valeu Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Julio_EngHaw
Pessoal, to precisando desse algoritmo....
porem não to conseguindo, sei pouco sobre arvores, eu tentei fazer algo, porem ele não funciona....dá erros nas condições
de existencia de uma Arvore Binaria(pai ser maior que o filho)
Vejam no que podem me ajudar
//Estrutura da Arvore
//Codigo de Retirarvaleu
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.