Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: nevfuck en 1 Octubre 2010, 15:07 PM

Título: colas simples
Publicado por: nevfuck en 1 Octubre 2010, 15:07 PM
¿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);
   }
} :D
Título: Re: colas simples
Publicado por: Littlehorse en 1 Octubre 2010, 16:35 PM
Probaste buscando aca (http://tinyurl.com/23zkatf) u acá (http://tinyurl.com/26suftj) ;D?

Saludos
Título: Re: colas simples
Publicado por: Gerik en 2 Octubre 2010, 13:28 PM
http://8556080156135426046-a-1802744773732722657-s-sites.googlegroups.com/site/rcalderonmoreno/Estructura_Cola.pdf?attachauth=ANoY7coDx_92ab3tiv6QI1QCvXOSmaOXkfFS1qnvh59vHqfTkTDbJuEz1F8wQXq3KxskGAGF7fHuiZJyt6zebmd-cAZS7hi8TpdugkySY3SF5OZ3TJaESQiv3o8Y-e9SmcTtGU0ZpOLTsXUmL3L-iy_KJiXk5hCHXttp4Waes7vaDMdAHooqnQ1wCSlQ0CISb71v7EuNa-a2KgAWiOXWZ-IEctF3RmZb1w%3D%3D&attredirects=1 (http://8556080156135426046-a-1802744773732722657-s-sites.googlegroups.com/site/rcalderonmoreno/Estructura_Cola.pdf?attachauth=ANoY7coDx_92ab3tiv6QI1QCvXOSmaOXkfFS1qnvh59vHqfTkTDbJuEz1F8wQXq3KxskGAGF7fHuiZJyt6zebmd-cAZS7hi8TpdugkySY3SF5OZ3TJaESQiv3o8Y-e9SmcTtGU0ZpOLTsXUmL3L-iy_KJiXk5hCHXttp4Waes7vaDMdAHooqnQ1wCSlQ0CISb71v7EuNa-a2KgAWiOXWZ-IEctF3RmZb1w%3D%3D&attredirects=1)

prueba este link hay un ejemplo sencillo