Advertisement
Guest User

Untitled

a guest
Apr 13th, 2011
970
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.64 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct lista {
  5.   char info;
  6.    struct lista* prox;
  7. } Lista;
  8.  
  9. Lista* lista_cria() {
  10.    return NULL;
  11. }
  12.  
  13. Lista* lista_insere (Lista* l, int i) {
  14.    Lista* novo = (Lista*) malloc(sizeof(Lista));
  15.    novo->info = i;
  16.    novo->prox = l;
  17.    return novo;
  18. }
  19.  
  20. void lista_imprime (Lista* l) {
  21.    Lista* p; /* variavel auxiliar para percorrer a lista */
  22.    for (p = l; p != NULL; p = p->prox)
  23.        printf("info = %c\n", p->info);
  24. }
  25.  
  26. /* função copia */
  27. Lista* copia (Lista* l)
  28. {
  29.  Lista*q /*auxiliar para copiar a lista*/
  30.  Lista* novo = (Lista*) malloc(sizeof(Lista));
  31.    novo->info = i;
  32.    novo->prox = l;
  33.    
  34.    q = Lista*l
  35.    
  36.    return q;
  37.    
  38. }
  39.  
  40. Lista* lista_libera (Lista* l) {
  41.    Lista* p = l;
  42.    while (p != NULL) {
  43.        Lista* t = p->prox; /* guarda referencia para prox elto */
  44.        free(p);            /* libera a memoria apontada por p  */
  45.        p = t;              /* faz p apontar para proximo elto  */
  46.    }
  47.    return NULL;
  48. }
  49.  
  50. main() {
  51.    Lista* l;
  52.    Lista* l2;
  53.  
  54.    l = lista_cria();
  55.    l = lista_insere(l, 23);
  56.    l = lista_insere(l, 45);
  57.    l = lista_insere(l, 67);
  58.    l = lista_insere(l, 89);
  59.    l = lista_insere(l, 1011);
  60.    printf("\nLista original:\n");
  61.    lista_imprime(l);
  62.    
  63.    //criando e imprimindo a lista l2
  64.    //l2 = lista_cria();
  65.    l2 = lista_insere(l, 30);
  66.    l2 = lista_insere(l, 44);
  67.    l2 = lista_insere(l, 69);
  68.    l2 = lista_insere(l, 90);
  69.    l2 = lista_insere(l, 1013);
  70.    
  71.    printf("\nLiberando a memoria...\n");
  72.    l = lista_libera(l);
  73.    
  74.    printf("\n**Lista depois da copia**\n");
  75.    copia(l1,l2);
  76.  
  77.    getch();
  78.    
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement