#include <stdio.h>
#include <stdlib.h>
 
   /* define a struct TAD lista */
struct lista {
    float info;         /* dado */
    struct lista *prox; /* ponteiro para o proximo elemento */
};
typedef struct lista Lista;
 
Lista* lista_insere( Lista* l, float info )
{
    Lista
* novo 
= (Lista
*) malloc(sizeof(Lista
));    novo->info = info;
    novo->prox = l;
    return novo;
}
int main(int argc, char **argv) {
    Lista *lista;
 
    /* cria a lista */
    lista = NULL;
 
    /* cria dados para inserir */
    float x = 1.0, y = 2.5;
 
    /* insere os dois pontos */
    lista = lista_insere(lista, x);
    printf("X (1.0) inserido...\n");     lista = lista_insere(lista, y);
    printf("Y (2.5) inserido...\n");      
    Lista* p = lista;
    return 0;    
}
				I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCiAgIC8qIGRlZmluZSBhIHN0cnVjdCBUQUQgbGlzdGEgKi8Kc3RydWN0IGxpc3RhIHsKICAgIGZsb2F0IGluZm87ICAgICAgICAgLyogZGFkbyAqLwogICAgc3RydWN0IGxpc3RhICpwcm94OyAvKiBwb250ZWlybyBwYXJhIG8gcHJveGltbyBlbGVtZW50byAqLwp9Owp0eXBlZGVmIHN0cnVjdCBsaXN0YSBMaXN0YTsKCkxpc3RhKiBsaXN0YV9pbnNlcmUoIExpc3RhKiBsLCBmbG9hdCBpbmZvICkKewogICAgTGlzdGEqIG5vdm8gPSAoTGlzdGEqKSBtYWxsb2Moc2l6ZW9mKExpc3RhKSk7CiAgICBub3ZvLT5pbmZvID0gaW5mbzsKICAgIG5vdm8tPnByb3ggPSBsOwogICAgcmV0dXJuIG5vdm87Cn0KaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CiAgICBMaXN0YSAqbGlzdGE7CgogICAgLyogY3JpYSBhIGxpc3RhICovCiAgICBsaXN0YSA9IE5VTEw7CgogICAgLyogY3JpYSBkYWRvcyBwYXJhIGluc2VyaXIgKi8KICAgIGZsb2F0IHggPSAxLjAsIHkgPSAyLjU7CgogICAgLyogaW5zZXJlIG9zIGRvaXMgcG9udG9zICovCiAgICBsaXN0YSA9IGxpc3RhX2luc2VyZShsaXN0YSwgeCk7CiAgICBwcmludGYoIlggKDEuMCkgaW5zZXJpZG8uLi5cbiIpOwogICAgbGlzdGEgPSBsaXN0YV9pbnNlcmUobGlzdGEsIHkpOwogICAgcHJpbnRmKCJZICgyLjUpIGluc2VyaWRvLi4uXG4iKTsgICAgCiAgICAKICAgIExpc3RhKiBwID0gbGlzdGE7CiAgICBwcmludGYoIiVmIiwgcC0+aW5mbyk7CiAgICByZXR1cm4gMDsgICAgCn0=