Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: ponchado en 13 Marzo 2017, 00:17 AM

Título: colas
Publicado por: ponchado en 13 Marzo 2017, 00:17 AM
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
Título: Re: colas
Publicado por: Kenji-chan en 13 Marzo 2017, 01:10 AM
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
Título: Re: colas
Publicado por: ponchado en 13 Marzo 2017, 01:41 AM
me ayudas a corregirlo, lo he intendo por horas y no puedo
Título: Re: colas
Publicado por: Kenji-chan en 13 Marzo 2017, 01:51 AM
sabes lo que es la memoria dinámica??
Título: Re: colas
Publicado por: ponchado en 13 Marzo 2017, 02:20 AM
si, si se que es, tengo que definir, no se por ejemplo el tamaño que me reserva en la memoria para la cola?
Título: Re: colas
Publicado por: Kenji-chan en 13 Marzo 2017, 03:10 AM
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
Título: Re: colas
Publicado por: ponchado en 13 Marzo 2017, 03:38 AM
es que el programa ya es para mañana :(