Estou tentando resolver um exercício só que está bem difícil, segue a pergunta abaixo:
Escreva um programa que leia números inteiros informados pelo usuário e guarda em duas filas:
Lista 1 - Com números negativos. O programa deve parar de ler os números quando o usuário informar um valor positivo ou zero.
Lista 2 - Com números positivos. O programa deve parar de ler os números quando o usuário informar um valor negativos ou zero.
Depois da leitura das duas filas, crie uma terceira fila, contendo uma junção dos elementos da lista 1 e 2,
alternando seus elementos, ou seja, enfileirando um elemento da lista 1,
depois um elemento da lista 2, depois um da lista 1, depois um da lista 2, e assim, sucessivamente.
Em seguida, exiba os valores da lista 3.
A lista 1 e 2 consegui fazer, mas quando chegou na lista 3 não entendi como faz para alternar os valores da lista 1 e 2, gostaria de saber se alguém pode me ajudar, segue abaixo meu programa.
#include <stdio.h>
#include "structno.c"
#include "funfila.c"
int main()
{
int valor1, valor2, valor3,numeroneg=-1, numeropos=1;
no *lista1 = NULL;
no *lista2 = NULL;
no *lista3 = NULL;
printf("Aperte 0 para parar\n");
while(numeroneg!=0)
{
printf("Entre com os numero negativos: ");
scanf("%i", &numeroneg);
enfileirar(&lista1, numeroneg);
}
while((valor1=desenfileirar(&lista1))!=NULL)
{
printf("%i\n", valor1);
}
printf("Aperte 0 para parar\n");
while(numeropos!=0)
{
printf("Entre com os numeros positivos: ");
scanf("%i", &numeropos);
enfileirar(&lista2, numeropos);
}
while((valor2=desenfileirar(&lista2))!=NULL)
{
printf("%i\n", valor2);
}
getch();
return 0;
}