#include <stdio.h>
#include <stdlib.h>
typedef struct estru
{
int id;
int numero;
struct estru *prox;
}lista;
lista *p, *q, *prim, *prim2,*prim1;
int qtd = 0, i = 0;
void insere(int num)
{
p = malloc(sizeof(lista));
p->numero = num;
p->prox = NULL;
if (prim == NULL)
{
prim = p;
p->id = 0;
}
else
{
q->prox = p;
p->id = ++q->id;
}
q = p;
}
void criarLista(){
for (i = 0; i < qtd; i++)
{
insere(rand()%10000);
}
}
void exibirLista(){
while ((p != NULL))
{
printf("%d ->", p->numero);
p = p->prox;
}
}
void concatenarLista(lista *lista1, lista *lista2)
{
p = lista1;
while ((p->prox != NULL))
p = p->prox;
p->prox = lista2;
lista2 = NULL;
}
int main()
{
prim = NULL;
printf("Informe a quantidade:\n ");
scanf("%u", &qtd);
criarLista();
p = prim;
printf("Lista:\n ");
exibirLista();
prim1 = prim;
prim = NULL;
criarLista();
p = prim2 = prim;
printf("\nLista:\n ");
exibirLista();
concatenarLista(prim1, prim2);
p = prim1;
printf("\nLista concatenada:\n ");
exibirLista();
printf("Fim da Lista\n");
}