Neo4
Banido
Boas,
estou aqui com um problema que me está a moer a mioleira
alguém me sabe dizer porque é que esta função so guarda os ultimos 2 elementos da lista ( a ideia é adicionar um elemento ao fim da lista) é que se eu corro por exemplo tres vezes a funcao e vou a imprimi-la so sao mostrados os 2 ultimos elementos e a funcao de imprimir esta bem pois se os adicionar á cabeça ela imprime tudo direitinho...
e uma soluçao para isto?!
Obrigado
estou aqui com um problema que me está a moer a mioleira
alguém me sabe dizer porque é que esta função so guarda os ultimos 2 elementos da lista ( a ideia é adicionar um elemento ao fim da lista) é que se eu corro por exemplo tres vezes a funcao e vou a imprimi-la so sao mostrados os 2 ultimos elementos e a funcao de imprimir esta bem pois se os adicionar á cabeça ela imprime tudo direitinho...
Código:
Lista addfim(Lista a, int d){
Lista new, aux=a;
if(a == NULL) {
new=(Lista) malloc(sizeof(Lista));
new->valor = d;
new->seg= a; return(new);
}
while(aux->seg != NULL)
aux= aux->seg;
new=(Lista) malloc(sizeof(Lista));
new->valor=d;
new->seg= NULL;
aux->seg=new;
return aux;
}
e uma soluçao para isto?!
Obrigado