fork download
  1. //http://pt.stackoverflow.com/questions/158694/duvida-em-um-programa-em-c-lista-simplesmente-encadeada
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. typedef struct celula_s{
  7.  
  8. int valor;
  9. struct nodo *prox;
  10.  
  11. } lista_t;
  12.  
  13. lista_t* lista_inicializar(void);
  14. lista_t* lista_inserir_inicio(lista_t* lista, int valor);
  15. int lista_imprimir(lista_t* lista);
  16.  
  17. int main (int argc, char *argv[]){
  18. lista_t* lista = lista_inicializar();
  19.  
  20. lista = lista_inserir_inicio(lista, 10);
  21. lista = lista_inserir_inicio(lista, 20);
  22. lista = lista_inserir_inicio(lista, 30);
  23.  
  24. lista_imprimir(lista);
  25. }
  26.  
  27. lista_t* lista_inicializar(void){
  28. lista_t* lista = (lista_t *) malloc( sizeof (lista_t) );
  29. //lista->valor = 0;
  30. //lista->prox = NULL;
  31. return lista;
  32. }
  33.  
  34. lista_t* lista_inserir_inicio(lista_t* lista, int valor){
  35. lista_t* novo = lista_inicializar();
  36.  
  37. if(novo != NULL){
  38. novo->valor = valor;
  39. novo->prox = lista;
  40. lista = novo;
  41. }
  42.  
  43. return lista;
  44. }
  45.  
  46. int lista_imprimir(lista_t* lista){
  47. lista_t* aux;
  48. aux = lista;
  49. printf("[");
  50. while (aux->prox != NULL){
  51. printf(" %d ", aux->valor);
  52. aux = aux->prox;
  53. }
  54. printf("]\n");
  55. return 0;
  56. }
  57.  
Success #stdin #stdout 0s 2300KB
stdin
Standard input is empty
stdout
[ 30  20  10 ]