tengo un problema con unas estructura, intento hacer una pila de pilas de pilas (estas ultimas estáticas)
les dejo el codigo y talvez alguien puede ayudarme a corregirlo... o a optimizarlo xD porque no puedo hacer el maldito push (que es condicional)
Esta es la estructura del dato:
typedef struct tm t_fecha; // tipo de dato - fecha
typedef t_fecha *ptfecha; // puntero de tipo de dato - fecha
typedef struct {
int top;
ptfecha cajas[12];
} t_pcajas; // tipo de dato - pila de cajas
typedef t_pcajas *pt_pcajas; // puntero de tipo de dato - pila de cajas
typedef struct n_pcajas{
pt_pcajas p_cajas;
n_pcajas *sig_pcajas;
} t_ppcajas; // tipo de dato - pila de pilas de cajas
typedef t_ppcajas *pt_ppcajas; // puntero de tipo de dato - pila de pilas de cajas
typedef struct n_lote{
pt_ppcajas p_pcajas[3]; // 3 pilas de pilas de cajas, una por marca
float precio_pcajas; // precio por caja del lote
int a_fab; // año de fabricacion
n_lote *sig_lote;
} t_plotes; // tipo de dato - pila de lotes
typedef t_plotes *pt_plotes; // puntero de tipo de dato - pila de lotes
y el push en el que me he trabado es este:
void push(pt_plotes pl, ptfecha f, int año, int marca){
pt_ppcajas itemp;
if(anio_e(pl,año)){ // comprueba si el año existe
if(full(pl,marca)){ // comprueba si la pila de cajas esta llena
itemp=(pt_ppcajas)malloc(sizeof(t_ppcajas));
itemp->p_pcajas[marca]->sig_pcajas=pl->p_pcajas[marca]->p_cajas;
pl->p_pcajas[marca]->p_cajas=itemp;
pl->p_pcajas[marca]->p_cajas->top=-1;
(pl->p_pcajas[marca]->p_cajas->cajas[++top])=f;
}
else{
(pl->p_pcajas[marca]->p_cajas->cajas[++top])=f;
}
}
else
(pl->p_pcajas[marca]->p_cajas->cajas[++top])=f;
}
las funciones que llama el push funcionan correctamente.
por cierto... he definido un montón de veces cada estructura porque la pila debe manejarlo como puntero verdad?
agrego:
En un principio (en main) defino la pila (de pilas de pilas xD) así:
t_plotes pila;
pt_plotes ppila=&pila;
Pero no sé si sería mejor hacer cada pila por separado, y si debo definir cada sub-pila en el main.
alguien puede hecharme un cable para manejar esta pila porque no me sale nada de nada jeje
Salu2 y gracias de antemano!