El programa tiene que simular un cruce vehicular
de un lado voy a tener una fila de caracteres y del otro una fila de números
el usuario tiene que ingresar cuantos nodos va a tener cada una
y voy a tener un semáforo que solo de 1 y 0, si me sale 1 voy a dejar pasar el primer nodo que se ingreso a la fila de caracteres y si sale 0 voy a dejar pasar un nodo de la fila de los numeros
esos nodos que pasen me van a generar una nueva fila
este es mi programa pero ya me atore en la parte del semáforo, por favor alguien que me ayude
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void insertar_filasFC();
void imprimir_filasFC();
void insertar_filasFN();
void imprimir_filasFN();
void insertar_filasF();
void eliminar_Nodo();
void eliminar_Nodo1();
typedef struct nodo
{
char FC_filas;//donde se guarda la fila de los caracteres
char FN_filas;//donde se guarda la fila de los numeros
char F_filas;//donde se guarda la fila resultante
struct nodo *sig;//puntero siguiente
}nodo;
nodo *primero1=NULL,*ultimo1=NULL,*primero2=NULL,*ultimo2=NULL,*primero=NULL,*ultimo=NULL,*inicio2=NULL,*inicio=NULL,*inicio1=NULL;
int main()
{
int FC,FN,i,n,k;
char letra='A',j='1';
printf("Ingresar el numero de nodos para la fila de los caracteres\n"); printf("Ingresar el numero de nodos para la fila de los numeros\n"); if(FC<27||FN<10){
printf("Fila de los Caracteres\n"); for(i=1; i<=FC; i++){
//printf("%c ",letra);
insertar_filasFC(letra);
letra++;
}
imprimir_filasFC();
printf("\nFila de los Numeros\n"); for(i=1; i<=FN; i++){
insertar_filasFN(j);
j++;
//printf("%d ",j);
}
imprimir_filasFN();
insertar_filasFC(*ultimo1);
insertar_filasFN(*ultimo1);
do{
if (semaforo==1){
insertar_filasFC(*primero);
insertar_filasF(primero);
eliminar_Nodo(primero);
}else{
if (semaforo==0){
insertar_filasFN(*primero1);
insertar_filasF(primero1);
eliminar_Nodo1(primero1);
}
}
while(ultimo==NULL || ultimo1==NULL){
}
}while(ultimo!=NULL && ultimo1!=NULL);
}else{
return main();
}
//printf("%d",semaforo);
return 0;
}
void insertar_filasF(char *dato){
primero2
=(nodo
*)malloc(sizeof(nodo
)); primero2-> F_filas=dato;
primero2->sig=NULL;
if(ultimo2==NULL)
ultimo2=inicio2=primero2;
else{
ultimo2->sig=primero2;
ultimo2=primero2;
}
}
void insertar_filasFC(char *letras){
primero
=(nodo
*)malloc(sizeof(nodo
)); primero-> FC_filas=letras;
primero->sig=NULL;
if(ultimo==NULL)
ultimo=inicio=primero;
else{
ultimo->sig=primero;
ultimo=primero;
}
}
void imprimir_filasFC(){
primero=inicio;
while(primero!=NULL){
printf("%c ",primero
->FC_filas
); primero=primero->sig;
}
}
void insertar_filasFN(char *i){
primero1
=(nodo
*)malloc(sizeof(nodo
)); primero1->FN_filas=i;
primero1->sig=NULL;
if(ultimo1==NULL)
ultimo1=inicio1=primero1;
else{
ultimo1->sig=primero1;
ultimo1=primero1;
}
}
void imprimir_filasFN(){
primero1=inicio1;
while(primero1!=NULL){
printf("%c ",primero1
->FN_filas
); primero1=primero1->sig;
}
}
void eliminar_Nodo(char dato){
inicio=primero;
if(primero==NULL){
primero=inicio->sig;
}
return primero;
}
void eliminar_Nodo1(char dato){
inicio1=primero1;
if(primero1==NULL){
primero1=inicio1->sig;
}
return primero;
}
No entendí el planteamiento.