Colas en C

MaNeLeT

Hola chicos/as.

Estoy creando un programa en C usando pilas. Bien, voy a intentar explicarme. Los clientes cuando abren el programa se registran, entonces pueden jugar. Los datos de los jugadores se guardan en una cola, pues el problema esta, en que, cuando miro los nodos que tiene la cola la primera vez funciona. Cuando lo quiero volver a mirar es como si todos los datos de la cola desaparecieran, el primero elemento de la lista apuntado por *primer se va a NULO y no hay datos.

Me han comentado que para recorrer los nodos use un puntero auxiliar, pero sigue sin funcionarme.

Alguna sugerencia? Muchas gracias, y a disfrutar de ese 2007.

JuAn4k4

No cambies el primer puntero, never.

maRc

Es obvio que en algún momento de tu pograma pones ese primer puntero a NULL.

Utiliza el depurador o sube el código a pastebin.com a ver si alguien se anima.

Alcanor

Dos Opciones:

-Depurar
-Hacer Tests

Sera alguna pijada, aunque juraria que ya hay una cola en C++, a menos que te pidan programarla tu, aprovecha el codigo de otros jeje. Si no recuerdo mal, #include <queue>

De todas formas, para un metodo que solo te devuelva los nodos (depende de si borras o no) puedes usar un metodo selector. Asi te aseguras de no borrar nada.

Un saludo.

javithelong

Mira que no reserves memoria estática en funciones (que se borra al salir de la función), pases las variables por valor, no por referencia (y pierdas el valor de todo al salir)...

No se tio, con esta informacion que das, poco mas se puede decir

SeRiaL_k

pega tu codigo aki ( http://pastebin.com/ ) y pon la url y con mucho gusto le exarems 1 ojo :P

trinytron

Hombre lo mejor es lo que dicen por ahi arriba... haz un seguimiento de la insercion del Nodo, va muy bien dibujarse en un papel la insercion de los nodos en la cola.

De todas formas...

//Creamos el nuevo nodo
struct cola *nuevo;
nuevo = new struct cola;

//Insertamos la información
nuevo->info = info
//Lo enlazamos
//Si la lista vendedores esta vacia
if (peus == NULL)
{
	cap = nuevo;	
//Si tiene información
} else
{
	peus->sig = nuevo;
	
}
nuevo->sig = NULL;
peus = nuevo;

Ahi tienes, tengo dos variables globales que son CAP y PEUS lo demas creo que es deducible

Usuarios habituales

  • trinytron
  • SeRiaL_k
  • javithelong
  • Alcanor
  • maRc
  • JuAn4k4
  • MaNeLeT