Foro: Dudas y Consultas

PUNTO 2_C_

PUNTO 2_C_

de Usuario eliminado -
Número de respuestas: 1

Profe no encuentro los errores en mi codigo compila bien no entiendo cual es el error : (

const int MAX=3;

typedef int contenedor[MAX];
typedef struct tpila{
contenedor d1;
contenedor d2;
};

void iniciar_pila(tpila &p);
void agregar_pila(tpila &p,int nuevo);
bool pila_llena(tpila p);
int quitar_pila(tpila &p);
bool pila_vacia(tpila p);
int tope_pila(tpila p);

void iniciar_pila(tpila &p){
p.d2[MAX*2-1]=-1;
}

void agregar_pila(tpila &p,int nuevo){
if(pila_llena(p)==true)
cout<<" PILA LLENA "<<endl;
else{
if(p.d2[MAX*2-1]<MAX-1){
p.d2[MAX*2-1]++;
p.d1[p.d2[MAX*2-1]]=nuevo;
}
else{
p.d2[MAX*2-1]++;
p.d2[p.d2[MAX*2-1]-MAX];
}
}
}

bool pila_llena(tpila p){
return p.d2[MAX*2-1]==MAX*2-2;
}

bool pila_vacia(tpila p){
return p.d2[MAX*2-1]==-1;
}
int quitar_pila(tpila &p){
int aux;
if(pila_vacia(p)==true)
aux=-9999;
else{
if(p.d2[MAX*2-1]>MAX){
aux=p.d2[p.d2[MAX*2-1]-MAX];
p.d2[MAX*2-1]--;
}
else{
aux=p.d2[p.d2[MAX*2-1]];
p.d2[MAX*2-1]--;
}
}
return aux;
}

int tope_pila(tpila p){
int aux;
if(pila_vacia(p)==true)
aux=-9999;
else
if(p.d2[MAX*2-1]>MAX)
aux=p.d2[p.d2[MAX*2-1]-MAX];
else
aux=p.d2[p.d2[MAX*2-1]];
return aux;
}