ayuda con colas

edwin07
06 de Febrero del 2005
Necesito que alguien me ayude a crear el codigo en C para las funciones de una cola: Crear cola, cola vacia, cola llena, meter cola, sacar cola, visualizar cola.
Se los ruego, ayudenme amigos

Gracias.

Felipe
06 de Febrero del 2005
Aqui tengo este codigo, espero que te sirva de algo, esta en lenguaje C pero no creo que tengas problemas al pasarlo a C++.

/*Implementacion de una cola simple*/

#include "stdio.h"
#include "conio.h"
#define N 3

void insertar(int [N], int*, int);
int sacar(int [N], int*, int*);
void imprimir(int [N], int, int);

main()
{
int frente=-1, final=0;
int cola[N]={0}, num, op;
do{
clrscr();
printf("ttOperaciones de la colasn");
printf("tttInsertar....1n");
printf("tttSacar.......2n");
printf("tttImprimir....3n");
printf("tttSalir.......4n");
printf("tttOpcion...."); scanf("%d", &op);
switch(op){
case 1: printf("ntElemento a insertar :");
scanf("%d", &num);
insertar(cola, &frente, num);
break;
case 2: num=sacar(cola, &frente, &final);
if (num == -9999){
printf("nntCola Vacia");
frente=-1;
final=0;
}
else
printf("ntElemento sacado : %d", num);
getch();
break;
case 3: imprimir(cola, frente, final);
getch();
break;
}
}while(op!=4);
getch();
return 0;
}

void insertar(int cola[N], int *frente, int numero)
{
if (*frente > N)
printf("nntCola llena");
else{
(*frente)++;
cola[*frente]=numero;
}
}

int sacar(int cola[N], int *frente, int *final)
{
int num;
if (*final > *frente)
return -9999;
else{
num=cola[*final];
(*final)++;
return num;
}
}

void imprimir(int cola[N], int frente, int final)
{
if (final > frente)
printf("nntCola vacia");
else{
printf("nElemetos en la Cola :n");
for (final=final; final<=frente; final++)
printf("ttt%dn",cola[final]);
}
}