Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com arvore binaria


vla

Pergunta

Olá pessoal. Estou fazendo uma função que tem como parametros uma arvore binaria e uma informação e tem como retorno o pai do nó que contem a informação passada. Ela funciona perfeitamente quando o nó em questão é um no interno, mas quando é uma folha, minha função dá falha de segmentação. O que pode ser? Lembrando que estou usando recursão na função.

Arv* arv_pai (Arv* a, char c){ // 'a' e arvore e 'c' e a informaçao
  
  if (a == NULL){ //Se arvore for vazia retorna NULL
    return NULL;
  }
    if (a->sae->info == c || a->sad->info == c){ //sae e sad são as sub-arvores esquerda e direita
      return a;
    }
    return arv_pai (a->sae,c); //chamo recursivamente para sae
    return arv_pai (a->sad,c); //chamo recursivamente para sad
  }

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
o seu return devolve um um ponteiro do tipo Arv, mas você está devolvendo uma chamada de função. Isso é permitido em C ?

Fiquei com a mesma dúvida. Se calhar é mais fácil fazer a arvore binária em JAVA ou até mesmo em Haskell!

O problema do java é que ele dá tudo de mão beijada para o programador, de fato, para aprender realmente o C é melhor, pois força o programador a compreender a lógica do algoritmo.

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...