Advertisement
Guest User

Untitled

a guest
Apr 12th, 2011
883
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.02 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct lista {
  5.    float info;
  6.    struct lista* prox;
  7. } Lista;
  8.  
  9.  
  10. Lista* lista_cria() {
  11.    return NULL;
  12. }
  13.  
  14. Lista* lista_insere (Lista* l, int i) {
  15.    Lista* novo = (Lista*) malloc(sizeof(Lista));
  16.    novo->info = i;
  17.    novo->prox = l;
  18.    return novo;
  19. }
  20.  
  21. void lista_imprime (Lista* l) {
  22.    Lista* p; /* variavel auxiliar para percorrer a lista */
  23.    for (p = l; p != NULL; p = p->prox)
  24.        printf("info = %f\n", p->info);
  25. }
  26.  
  27. int comprimento (Lista* l) {
  28.    Lista* p; /* variavel auxiliar para percorrer a lista */
  29.    int cont=0;
  30.    for (p = l; p != NULL; p = p->prox)
  31.        cont++;
  32.    return cont;
  33. }
  34.  
  35. int maiores (Lista* l, int n) {
  36.    Lista* p; /* variavel auxiliar para percorrer a lista */
  37.    int cont=0;
  38.    for (p = l; p != NULL; p = p->prox) {
  39.        if(p->info > n)
  40.            cont++;
  41.    }
  42.    return cont;
  43. }
  44.  
  45. Lista* ultimo (Lista* l) {
  46.    Lista* p = l; /* variavel auxiliar para percorrer a lista */
  47.    while (p->prox != NULL) {
  48.        p = p->prox;
  49.    }
  50.    return p;
  51. }
  52.  
  53.  
  54. /* concatena modificando l1 */
  55. Lista* concatena (Lista* l1, Lista* l2)
  56. {
  57.      Lista* p;   /* variável auxiliar para percorrer a lista */
  58.      Lista* q;   /* variável auxiliar para criar a nova lista */
  59.  
  60.         if (l1 == NULL) return l2;
  61.         p = l1;  
  62.           do  
  63.           {
  64.              q = p;
  65.              p = p->prox;
  66.           }
  67.           while(p != NULL);
  68.  
  69.         q->prox = l2;
  70.  
  71. return l1;  
  72. }
  73.  
  74.  
  75. main() {
  76.    Lista* l;
  77.    int n;
  78.    l = lista_cria();
  79.    l = lista_insere(l, 23);
  80.    l = lista_insere(l, 45);
  81.    l = lista_insere(l, 67);
  82.    l = lista_insere(l, 89);
  83.    l = lista_insere(l, 1011);
  84.    lista_imprime(l);
  85.    printf("\nA lista possui %f eltos\n", comprimento(l));
  86.    printf("\nEntre com n: ");
  87.    scanf("%d",&n);
  88.    printf("\nHa %f eltos maiores que %f\n", maiores(l,n), n);
  89.    printf("\nCampo info do ultimo no: %f\n", ultimo(l)->info);
  90.    printf("\n");
  91.    printf("\nLista concatenada: %f",concatena(l1));
  92.  
  93.    getch();
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement