fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct node_s {
  5. int v;
  6. struct node_s *prox;
  7. } node;
  8.  
  9. typedef struct lista_s {
  10. node *primeiro;
  11. } lista;
  12.  
  13. void init_lista(lista *lt) {
  14. lt->primeiro = NULL;
  15. }
  16.  
  17. void adiciona (int v, lista *lt){
  18. node *novo = malloc(sizeof(node));
  19. novo->v = v;
  20. novo->prox = lt->primeiro;
  21. lt->primeiro = novo;
  22.  
  23. }
  24.  
  25. node *ultimo (lista *lt)
  26. {
  27.  
  28. if(lt->primeiro==NULL)
  29. {
  30. return NULL;
  31. }
  32. else
  33. {
  34. node *interm = lt->primeiro;
  35.  
  36. while(interm->prox!=NULL)
  37. {
  38. interm = interm ->prox;
  39. }
  40. return interm;
  41. }
  42. }
  43.  
  44. int main(void) {
  45. lista lt;
  46. init_lista(&lt);
  47. int n=0;
  48. while(n>=0) {
  49. scanf("%d", &n);
  50. if(n>=0)
  51. adiciona(n, &lt);
  52. }
  53. node *u = ultimo(&lt);
  54. if (u) {
  55. printf("%d\n", u->v);
  56. } else {
  57. printf("Lista vazia\n");
  58. }
  59. return 0;
  60. }
Success #stdin #stdout 0s 4456KB
stdin
1 2 555 -1
stdout
1