COLAS -AYUDA PORFA
Publicado por Mónica (3 intervenciones) el 29/10/2009 14:35:21
Buenas tardes a tod@s, tengo un problemilla y no en que me estoy equivocando. Necesitaría un empujón para poder seguir con todo lo demás.
Tengo en el fichero "colas.h" las siguientes estructuras:
======================================================
//Estructura para los nodos de la cola.
struct NodoCola {
int iDato; //Dato almacenado
struct NodoCola *Anterior; //Apunta al nodo anterior
struct NodoCola *Siguiente; //Apunta al nodo siguiente
};
typedef struct NodoCola TNodoCola, *PNodoCola;
//Estructura para apuntar al primer, actual y último nodo de la cola
struct Cola {
int Longitud; //Guarda el número de elementos de la cola
struct NodoCola *Primero; //Primer nodo de la cola
struct NodoCola *Actual; //Nodo Actual de la cola
struct NodoCola *Ultimo; //Último nodo de la cola
};
typedef struct Cola TCola, *PCola;
//Funciones de la cola
void inicializa(PCola cola); //Inicializa la cola
int inserta(PCola cola, int t); //Inserta un nodo en la cola
int extrae(PCola cola); //Extrae un nodo de la cola
int tamano(PCola cola); //Devuelve el tamaño de la cola
void copia(PCola destino, PCola origen); //Copia una cola en otra
void destruye(PCola cola); //Elimina todos los nodos de la cola
int examina(PCola cola); //Devuelve el valor del nodo actual
int inicio(PCola cola); //Coloca el iterador al inicio de la cola
int fin(PCola cola); //Coloca el iterador al final de la cola
int avanza(PCola cola); //Avanza al siguiente nodo de la cola
int retrocede(PCola cola); //Retrocede al nodo anterior de la cola
Y en el fichero "colas.c"
=====================================
void inicializa(PCola cola)
{
cola = (PCola)malloc(sizeof(TCola));
cola->Primero = NULL;
cola->Actual = NULL;
cola->Ultimo = NULL;
cola->Longitud = 0;
}
int tamano(PCola cola){
return cola->Longitud;
}
En el programa de pruebas pongo:
=======================================
TCola cola;
inicializa(&cola); /* cola=[] */
printf("Longitud de la cola: %d\n", tamano(&cola));
Resulta que me devuelve como tamaño todo menos el 0 que debería tener. ¿En que me estoy equivocando? ¿No me está grabando los cambios hechos en cola??
Tengo en el fichero "colas.h" las siguientes estructuras:
======================================================
//Estructura para los nodos de la cola.
struct NodoCola {
int iDato; //Dato almacenado
struct NodoCola *Anterior; //Apunta al nodo anterior
struct NodoCola *Siguiente; //Apunta al nodo siguiente
};
typedef struct NodoCola TNodoCola, *PNodoCola;
//Estructura para apuntar al primer, actual y último nodo de la cola
struct Cola {
int Longitud; //Guarda el número de elementos de la cola
struct NodoCola *Primero; //Primer nodo de la cola
struct NodoCola *Actual; //Nodo Actual de la cola
struct NodoCola *Ultimo; //Último nodo de la cola
};
typedef struct Cola TCola, *PCola;
//Funciones de la cola
void inicializa(PCola cola); //Inicializa la cola
int inserta(PCola cola, int t); //Inserta un nodo en la cola
int extrae(PCola cola); //Extrae un nodo de la cola
int tamano(PCola cola); //Devuelve el tamaño de la cola
void copia(PCola destino, PCola origen); //Copia una cola en otra
void destruye(PCola cola); //Elimina todos los nodos de la cola
int examina(PCola cola); //Devuelve el valor del nodo actual
int inicio(PCola cola); //Coloca el iterador al inicio de la cola
int fin(PCola cola); //Coloca el iterador al final de la cola
int avanza(PCola cola); //Avanza al siguiente nodo de la cola
int retrocede(PCola cola); //Retrocede al nodo anterior de la cola
Y en el fichero "colas.c"
=====================================
void inicializa(PCola cola)
{
cola = (PCola)malloc(sizeof(TCola));
cola->Primero = NULL;
cola->Actual = NULL;
cola->Ultimo = NULL;
cola->Longitud = 0;
}
int tamano(PCola cola){
return cola->Longitud;
}
En el programa de pruebas pongo:
=======================================
TCola cola;
inicializa(&cola); /* cola=[] */
printf("Longitud de la cola: %d\n", tamano(&cola));
Resulta que me devuelve como tamaño todo menos el 0 que debería tener. ¿En que me estoy equivocando? ¿No me está grabando los cambios hechos en cola??
Valora esta pregunta


0