Ir ao conteúdo

Posts recomendados

Postado

Boa tarde!

 

Preciso de ajuda no seguinte exercício:

 

Retornar a quantidade de números pares da lista ligada (inicio e fim) usando recursividade.

 

A lista está inserindo dados corretamente, preciso de ajuda na função numPares, que é a função que vai retornar a quantidade de números pares da lista...

#include <iostream>

using namespace std;
  
struct No {
    int valor;
    No *prox;
};

void insere( No **inicio, No **fim, int valor){        
    No *novo;
    novo = new (No);
    novo->valor = valor;
    novo->prox = NULL;
    
    if (*inicio == NULL) {   
        *inicio = novo;
        *fim    = novo;
    } 
    else {   
        novo->prox = *inicio;
        *inicio = novo;
    }
} 

void insereFim(No **inicio, No **fim, int valor){    
    No *novo;   // preparo o novo No
    novo = new(No);
    novo->valor = valor ;
    novo->prox = NULL;
    
    if (*inicio == NULL) {
        *inicio = novo;
        *fim    = novo;
    }   
    else {   
        (*fim)->prox = novo;
        *fim = novo;
    }
} 

void imprime (No **inicio){    
    No *aux = *inicio; // inicializa Aux com o inicio da lista
    
    while (aux != NULL){   // enquanto aux diferente de NULL
        cout << aux->valor << endl;
        aux = aux->prox;
    }
}  

/*int numPares(No **inicio){
    
    No *aux = *inicio;
    
    if (aux % 2 == 0) {
        return (1 + numPares(aux));
    }
    else {
        return 0;
    }
}

*/
int main() {  
    
    No *inicio = NULL,  *fim = NULL;
    insere(&inicio, &fim, 10);     // insere no inicio
    insereFim(&inicio, &fim, 15);
    insereFim(&inicio, &fim, 18);

    imprime(&inicio);
     
    return EXIT_SUCCESS;
}

 

  • Obrigado 1
Postado

recursão é apenas um loop mais chato e sem memória: só vê o que tem na frente na hora.

 

Pense assim: você está vendo um elemento da lista, e não achou nenhum par ainda. Se o número que você está vendo é par o total de pares é 1 + o total de pares daí para frente. Se ele é impar é apenas claro os pares que vierem depois. "Vir depois" é a recursão.

  • Curtir 1
  • Obrigado 1
Postado

@arfneto Pois é, recursividade é chato mas preciso usar porque é um exercício da aula.. Vou tentar aplicar isso que você falou. Obrigado!

  • Curtir 2

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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!