Foro de elhacker.net

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