//Cola que prioriza velocidad de proceso typedef char contenedor[MAX]; typedef struct tindicador{ int ind1; int ind2; }; typedef struct tcola{ contenedor datos; tindicador indicador; }; void iniciar_cola(tcola &x){ x.indicador.ind1=MAX-1; // frente x.indicador.ind2=MAX-1; // final } int siguiente(int indice){ if (indice == MAX-1) indice=0; else indice++; return indice; } bool cola_vacia(tcola x){ return x.indicador.ind1==x.indicador.ind2; } bool cola_llena(tcola x){ return x.indicador.ind1==siguiente(x.indicador.ind2); } void agregar_cola(tcola &x, char nuevo){ if (cola_llena(x)==true) cout << "COLA LLENA" << endl; else{ x.indicador.ind2=siguiente(x.indicador.ind2); x.datos[x.indicador.ind2]=nuevo; } } char quitar_cola(tcola &x){ char extraido; if (cola_vacia(x)==true) extraido=' '; else{ x.indicador.ind1=siguiente(x.indicador.ind1); extraido=x.datos[x.indicador.ind1]; } return extraido; } char consultar_primero(tcola &x){ char pri; if (cola_vacia(x)==true) pri=' '; else pri=x.datos[siguiente(x.indicador.ind1)]; return pri; } char consultar_ultimo(tcola &x){ char ulti; if (cola_vacia(x)==true) ulti=' '; else ulti=x.datos[x.indicador.ind2]; return ulti; }