Gracias de antemano y un saludo!!
Código C++:
Ver original
#include <cstdlib> #include <iostream> #include<time.h> using namespace std; typedef struct vehiculo { string matricula; bool estado ; char tipo; string marca; string modelo; struct vehiculo *sig; }; typedef struct Cola { struct vehiculo *cabecera; struct vehiculo *ultimo; }*lacola; lacola crearCola(void) { lacola co= new struct Cola; co->cabecera = new struct vehiculo; co->ultimo = new struct vehiculo; co->ultimo = NULL; co->cabecera->sig = NULL; return co; } bool colaVacia(lacola laco) { if(laco->ultimo == NULL) return true; else return false; } void crearMatricula (string &matricula){ char nmatricula[8]; string numeros="0123456789"; string letrasma="BCFGHJKLMNPRSTVWXYZ"; for(int i=0;i<4;i++) { } for(int i=4;i<7;i++) { } nmatricula[7] = '\0'; matricula = string(nmatricula); } void anyadir(lacola laco) { struct vehiculo *nodo_aux; nodo_aux = new struct vehiculo; if(colaVacia(laco)) { crearMatricula(nodo_aux->matricula); nodo_aux->sig = NULL; laco->cabecera->sig = nodo_aux; laco->ultimo = nodo_aux; } else { crearMatricula(nodo_aux->matricula); nodo_aux->sig = NULL; laco->ultimo->sig = nodo_aux; laco->ultimo = nodo_aux; } } void quitar(lacola laco) { string resul; struct vehiculo *nodo_aux; if(colaVacia(laco)) { cout << "LA COLA ESTA VACIA" << endl; } else { if(laco->cabecera->sig == laco->ultimo) { resul = laco->cabecera->sig->matricula; laco->cabecera->sig=NULL; laco->ultimo=NULL; delete (laco->cabecera->sig); } else { resul= laco->cabecera->sig->matricula; nodo_aux = laco->cabecera->sig; laco->cabecera->sig = laco->cabecera->sig->sig; delete (nodo_aux); } } } string primeroCola(lacola laco) { string x; if(colaVacia(laco)) { cout << "LA COLA ESTA VACIA" << endl<<endl; return x; } else cout<<laco->cabecera->sig->matricula; return laco->cabecera->sig->matricula; } void completarColas(lacola laco) { struct vehiculo *nodo_aux; nodo_aux = new struct vehiculo; nodo_aux = laco->cabecera->sig; int i =0; int j = 5; while(nodo_aux!=NULL) { i++; nodo_aux = nodo_aux->sig; } j=j-i; while(j!=0) { anyadir(laco); j--; } } bool estado(string h) { int a; if(a<8) return true; else return false; } void volver(lacola laco) { struct vehiculo *nodo_aux; nodo_aux = new struct vehiculo; nodo_aux = laco->cabecera->sig; laco->cabecera->sig = nodo_aux->sig; laco->ultimo->sig = nodo_aux; nodo_aux->sig = NULL; laco->ultimo = nodo_aux; } void ver(lacola laco) { struct vehiculo *nodo_aux; nodo_aux = new struct vehiculo; nodo_aux = laco->cabecera->sig; while (nodo_aux!=NULL) { cout << " " << nodo_aux->matricula <<" "; nodo_aux = nodo_aux->sig; } } void simulacion(lacola laco) { cout<<"El estado del vehiculo con matricula "; if(estado(primeroCola(laco)) == true) { cout<<" es OK, por lo tanto abandona la cola."<<endl; quitar(laco); cout<<endl; ver(laco); cout<<endl; } else { cout<<" es KO,por lo tanto vuelve al final de la cola."<<endl; volver(laco); cout<<endl; ver(laco); cout<<endl; } }