#include <stdio.h>
#include <stdlib.h>

typedef struct lista Lista;
typedef struct lista
{
    int info;
    Lista *prox;
};
Lista* lst_cria (void)
{
    return NULL;
}

Lista* lst_insere (Lista* lst, int val)
{
    Lista* novo = (Lista*) malloc(sizeof(Lista));
    novo->info = val;
    novo->prox = lst;
    return novo;
}

void lst_imprime (Lista* lst)
{
    Lista* p;
    for (p = lst; p != NULL; p = p->prox)
    {
        printf("info = %d\n", p->info);
    }
}

int main()
{
    struct Lista* p;
    p=lst_cria();
    p=lst_insere (p,100);
    p=lst_insere (p,200);
    p=lst_insere (p,300);
    p=lst_insere (p,400);
    p=lst_insere (p,500);
    lst_imprime(p);

    printf ("\n");

    struct Lista* s;
    s=lst_cria();
    s=lst_insere (s,100);
    s=lst_insere (s,600);
    s=lst_insere (s,300);
    s=lst_insere (s,700);
    s=lst_insere (s,800);
    lst_imprime(s);

    printf ("\n");

    Lista* p1;
    Lista* s1;

    struct Lista* t;
    t=lst_cria();

    for (s1=s; s1!= NULL; s1=s1->prox)
    {
        int insere = 1;
        for (p1=p; p1!= NULL; p1=p1->prox)
        {
            if (s1->info == p1->info)
            {
                insere=0;
            }
        }
        if(insere == 1)
            t=lst_insere (t, s1->info);
    }

    lst_imprime(t);

    return 0;
}
