¿algun ejemplo de colas en c++? simple y entendible asi como este:
#include "stdio.h"
#include "iostream.h"
#include MAX_COLA 50
typedef int tipodato;
typedef struct
{ int elems;
int final, frente;
tipodato elementos[MAX_COLA];
} colacir;
/* inicializa la cola */
void crearcola(colacir &cola);
/* retorna el indice del siguiente elemento */
int siguiente(int i);
/* retorna 1 si la cola esta vacia */
int vacia(colacir cola);
/*retorna 1 si la cola esta llena*/
int llena(colacir cola);
/* inserta un elemento al final de la cola*/
void encolar(colacir &cola,tipodato elem);
/* retira el elemento del inicio de la col*/
tipodato desencolar(colacir &cola);
/* obtiene el elmento del inicio de la cola */
tipodato frente(colacir cola);
/* reporta todos los elementos de la cola */
void visualizar(colacir cola);
/** DESARROLLO DE FUNCIONES **/
void crearcola(colacir &cola)
{
cola.elems = cola.frente = 0;
cola.final =MAX_COLA-1;
}
int siguiente(int i)
{
return ((i+1) % MAX_COLA);
}
int vacia(colacir cola)
{
return (cola.elems == 0);
}
int llena(colacir cola)
{
return (cola.elems == MAX_COLA);
}
void encolar(colacir &cola, tipodato elem)
{
cola.elems++;
cola.final=siguiente( cola.final);
cola.elementos[cola.final] = elem;
}
tipodato desencolar(colacir &cola)
{
int elem;
cola.elems--;
elem = cola.elementos[cola.frente];
cola.frente=siguiente(cola.frente);
return elem;
}
tipodato frente(colacir cola)
{
return cola.elementos[cola.frente];
}
void visualizar(colacir cola)
{
if(!vacia(cola))
{
cout<<desencolar(cola);cout<<" ";
visualizar(cola);
}
}