AYUDA: como le hago para que me pida los valores de la cola, me vaya mostrando los datos agregados y la cola
#include <stdio.h>
#define MAX_SIZE 50
struct tcola
{
int elems;
int entrada, salida;
int elementos[MAX_SIZE];
};
//Creación:
void crear(struct tcola *cola)
{
cola->elems = cola->salida = cola->entrada = 0;
}
//Función que devuelve verdadero si la cola está vacía:
int vacia(struct tcola *cola)
{
return (cola->elems == 0);
}
//Función que devuelve verdadero si la cola está llena:
int llena(struct tcola *cola)
{
return (cola->elems == MAX_SIZE);
}
//Encolado:
void encolar(struct tcola *cola, int elem)
{
cola->elems++;
cola->elementos[cola->entrada++] = elem;
if (cola->entrada == MAX_SIZE)
cola->entrada = 0;
}
//Desencolado:
void desencolar(struct tcola *cola, int *elem)
{
cola->elems--;
*elem = cola->elementos[cola->salida++];
if (cola->salida == MAX_SIZE)
cola->salida = 0;
}
int main(void)
{
struct tcola cola;
int elem;
crear(&cola);
if (vacia(&cola)) printf("\nCola vacia.");
if (llena(&cola)) printf("\nCola llena.");
encolar(&cola, 1);
desencolar(&cola, &elem);
return 0;
}
· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex
supongo que el elemento a encolar es el int elem; que se encuera en la función main()
lo que tienes que hacer es pedir el dato del elemento antes de llamar a la funcion encolar(struct tcola *cola, int elem) pero recuerda que para encolar un elemento simpre tiene que ir al fina de la cola pero si la cola esta vacía lo colocas en la cabeza y ya pero en la linea 40 cola->elementos[cola->entrada++] = elem; te estas saltando la caveza de tu cola, y para desencolar simpre lo haremos con la caveza operamos y luego la eliminamos pero tu lo único que haces es reducir el valor de la variable que contiene el tamaño de la cola
me ayudas a corregirlo, lo he intendo por horas y no puedo
sabes lo que es la memoria dinámica??
si, si se que es, tengo que definir, no se por ejemplo el tamaño que me reserva en la memoria para la cola?
entonces te paso unos vídeos que enseñan a hacer colas
colas teoria
https://www.youtube.com/watch?v=6i2f6k5PPjs&index=5&list=PLTd5ehIj0goMTSK7RRAPBF4wP-Nj5DRvT
colas implementacion
https://www.youtube.com/watch?v=nicbZo7sI_w&index=6&list=PLTd5ehIj0goMTSK7RRAPBF4wP-Nj5DRvT
es que el programa ya es para mañana :(