Ir ao conteúdo
  • Cadastre-se

Maior Igual Recursivo


_calopsita

Posts recomendados

Olá, preciso fazer uma função recursiva que retorne o total de elementos de uma árvore que são maiores iguais ao valor passado por parâmetro e consigo fazer ele achar só do lado esquerdo da árvore.

 

int numElemMaiorIgual(arvoreBin* raiz, int valor){ //valor é o parâmetro na qual vou comparar os elementos da árvore.
   if(raiz != NULL){
      if(raiz->esquerda != NULL) {
         return 0 + numElemMaiorIgual(raiz->esquerda, valor);
      }
      if(raiz->direita != NULL){
         return 0 + numElemMaiorIgual(raiz->direita, valor);
      }
      if(raiz->dado >= valor) {
         return 1;
      }
   }
}

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...
struct nodoArv * pesq_arv_rec( struct nodoArv * raiz, int d ){		
        struct nodoArv * res = NULL;
		if( raiz != NULL ){
            
		  if(raiz->info == d){
             res = raiz;
          }
          else{
               if(d < raiz->info){
                    res = pesq_arv_rec( raiz->esq, d );
               }
               else{
                    res = pesq_arv_rec( raiz->dir, d );
               }
          }
        }
        return res;
	}
	struct nodoArv * pesquisaRec( int d ){
		struct nodoArv * res = pesq_arv_rec( raiz, d );
		return res;
	}

tu não esta passando pelos termos da esquerda e da direita corretamente, um exemplo de uma pesquisa ...

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!