• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

claudio85

listas ligadas

6 mensagens neste tópico

ola pessoal tenho k fazer a seguinte uma funçao k remova todos os pares de uma lista ligada e fiz o seguinte (o problema é k so remove o primeiro elemeto k é par) o k tenho de acrecentar para funcionar para todos os lementos?

lista removeraux (lista l){
    lista ant,act;
    for(act=l;((act->elem)%2)!=0;act=act->seg) {
        ant=act;
    }

    if(act==l) {
        act=act->seg;return act;
    }

    ant->seg=act->seg;
    free(act);


    return l;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vê bem a condição do for: "Enquanto (act->elem) for par".

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

a condição do for diz que o for termina quando o act->elem for par

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que tu estás a fazer, semanticamente, é algo do tipo:

   for(; enquanto_nao_é_par ; passa_ao_proximo);
   apaga_o_elemento_encontrado()

O que tu queres é algo do tipo

   for(; enquanto_ha_elementos ; passa_ao_proximo) {
      if(elemento_é_par)
         apaga_o_elemento_encontrado()
   }

Percebido ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

percebido ,mas o k estava a pensar inicialmente era utilizar recursividade se fosse possivel ,assim faço uma funçao auxiliar,obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora