Shinzo8 Postado Setembro 21, 2007 Denunciar Share Postado Setembro 21, 2007 Oi estou com uma dúvida num exercicio de lista dinamica, nesse código eu consigo mostrar só o ultimo valor que o usuário digita, queria saber saber como mostrar todos os elementos de uma lista.vlw.#include <stdio.h> #include <stdlib.h> #include <conio.h> typedef struct bloco { int dado; struct bloco *prox; }nodo; nodo *cria_nodo() { nodo *p; p=(nodo*) malloc(sizeof(nodo)); if(!p) { printf("\nErro"); exit(0); } return p; } void insere_lista(nodo **N, int dado) { nodo *novo; novo=cria_nodo(); novo->dado=dado; novo->prox=*N; *N=novo; } int main() { int valor,valor1; nodo *lista=NULL; printf("Digite o valor");scanf("%d",&valor); printf("Digite o valor2");scanf("%d",&valor1); insere_lista(&lista,valor); insere_lista(&lista,valor1); printf("Primeiro dado %d",*lista); printf("Segundo dado %d",*lista); printf("\n"); system("PAUSE"); getch(); return 0; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 == Douplus == Postado Setembro 24, 2007 Denunciar Share Postado Setembro 24, 2007 (editado) Olá Shinzo8,O problema no seu código está justamente nos comandos printf() que estão mostrando ambos o primeiro valor da lista. Creio que faltou uma função para retirada desse valores, como esta:int retira_lista(nodo **N, int dado) { nodo *prev, *curr, *aux; if (*N == NULL) // Se vazia... return 0; // retorna 0 else { // Senão: prev = *N; curr = (*N)->prox; while (curr != NULL && curr->dado != dado) { // Elemento == dado prev = curr; // Senão vai pro próximo curr = curr->prox; } if (curr != NULL) // Se encontrou aux = curr; curr = prev; // Exclui o elemento free(aux); // Libera espaço na memória return dado; // Volta o dado encontrado } return 0; // Senão volta 0. } As chamadas a printf() ficariam: printf("Primeiro dado %d", retira_lista(&lista, valor)); printf("Segundo dado %d", retira_lista(&lista, valor1));Falou! Editado Setembro 24, 2007 por == Douplus == Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Shinzo8
Oi estou com uma dúvida num exercicio de lista dinamica, nesse código eu consigo mostrar só o ultimo valor que o usuário digita, queria saber saber como mostrar todos os elementos de uma lista.
vlw.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
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.