Advertisement
sconetto

Lista Encadeada Simples v1

Mar 23rd, 2016
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.94 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. //#################################################################################################################################
  4. typedef struct elemento Elemento;
  5.  
  6. struct elemento {
  7.     int info;
  8.     Elemento* prox;
  9. };
  10. //#################################################################################################################################
  11. Elemento* lst_cria (void) {
  12.     return NULL;
  13. }
  14. //#################################################################################################################################
  15. Elemento* lst_insere (Elemento* lst, int val) {
  16.     Elemento* novo = (Elemento*) malloc(sizeof(Elemento));
  17.     novo->info = val;
  18.     novo->prox = lst;
  19.     return novo;
  20. }
  21. //#################################################################################################################################
  22. Elemento* lst_insere_fim(Elemento* lst, int val) {
  23.     Elemento* novo = (Elemento*) malloc(sizeof(Elemento));
  24.     Elemento* aux;
  25.     aux = lst;
  26.     novo->info = val;
  27.     novo->prox = NULL;
  28.     while (aux->prox != NULL) {
  29.         aux = aux->prox;
  30.     }
  31.     aux->prox = novo;
  32.  
  33.     return lst;
  34.  
  35. }
  36. //#################################################################################################################################
  37. void imprime_lst_recursivo(Elemento* lst) {
  38.     if (lst != NULL) {
  39.         printf("info = %d\n", lst->info);
  40.         imprime_lst_recursivo(lst->prox);
  41.     }
  42. }
  43. //#################################################################################################################################
  44. void lst_imprime(Elemento* lst) {
  45.     Elemento* p;
  46.     for (p = lst; p != NULL; p = p->prox) {
  47.         printf("info = %d\n", p->info);
  48.     }
  49. }
  50. //#################################################################################################################################
  51. int lst_vazia (Elemento* lst) {
  52.     return (lst == NULL);
  53. }
  54. //#################################################################################################################################
  55. int procura_info(Elemento* lst, int procurado) {
  56.     Elemento* p;
  57.     for (p = lst; p != NULL; p = p->prox) {
  58.         if (p->info == procurado) {
  59.             return 1;
  60.         }
  61.     }
  62.     return 0;
  63. }
  64. //#################################################################################################################################
  65. int retira_elemento(Elemento* lst, int elemento_retirar) {
  66.     Elemento* p;
  67.     for (p = lst; p != NULL; p = p->prox) {
  68.         if (p->info == elemento_retirar) {
  69.         }
  70.     }
  71. }
  72. //#################################################################################################################################
  73. Elemento* retira_primeiro_elemento(Elemento* lst) {
  74.     Elemento* aux;
  75.     aux = lst;
  76.     lst = aux->prox;
  77.     free(aux);
  78.     return lst;
  79. }
  80. //#################################################################################################################################
  81. Elemento* retira_ultimo_elemento(Elemento* lst) {
  82.     Elemento* aux;
  83.     int contador = 0, i;
  84.     for (aux = lst; aux != NULL; aux = aux->prox) {
  85.         contador+1;
  86.     }
  87.     Elemento* novo;
  88.     for (i = 0; i < contador-1 ; i++)   {
  89.         novo = lst_insere(novo, lst->info);
  90.     }
  91.     return novo;
  92. }
  93. //#################################################################################################################################
  94. int main(int argc, char const *argv[]) {
  95.     Elemento* lst;
  96.     int procurar, encontrado = 0;
  97.  
  98.     scanf("%d", &procurar);
  99.  
  100.     lst = lst_cria();
  101.  
  102.     lst = lst_insere(lst, 23);
  103.     lst = lst_insere(lst, 45);
  104.     lst = lst_insere(lst, 51);
  105.     lst = lst_insere(lst, 67);
  106.     lst = lst_insere_fim(lst, 12);
  107.     lst = lst_insere_fim(lst, 23);
  108.     lst = retira_primeiro_elemento(lst);
  109.    
  110.     //lst = retira_ultimo_elemento(lst);
  111.  
  112.     lst_imprime(lst);
  113.     encontrado = procura_info(lst, procurar);
  114.     if (encontrado == 1) {
  115.         printf("Valor encontrado!\n");
  116.     }
  117.     else
  118.         printf("Valor não encontrado!\n");
  119.  
  120.     return 0;
  121. }
  122. //#################################################################################################################################
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement