Pilas Estructura
int main(){
int salir=0, sp=-1,spaux=-1,push,op,i,pos_insert,insertar,pos_eliminar;
int pila[10],pilaaux[10];
while(salir==0){
printf("\e[2J");
printf("1.- Push\n");printf("2.- Pop\n");
printf("3.- Mostrar\n");
printf("4.- Insertar\n");
printf("5.- Eliminar\n");
printf("6.- Salir\n");
printf("Ingrese Opcion: ");
scanf("%d", &op);switch(op){
case 1:
printf("\e[2J");
if(sp=0) sp--;
else{ printf("La pila esta vacia no se puede hacer pop");
getchar();getchar();
}
break;
case 3:
printf("\e[2J");for(i=sp;i>=0;i--) printf("%d\n", pila[i]);
getchar();getchar();
break;
case 4:
printf("\e[2J");
printf("Ingrese pos para insertar: ");
scanf("%d",&pos_insert);
if(sp==9){printf("pilallena");getchar();getchar();}
else
if(pos_insert>9){printf("El numero mayor es 9");
getchar();getchar();}
else if(pos_insert-1>sp){ printf("La posicion no puede ser mayor o igual al statpoint");
getchar();getchar();
}
else{
//pasa a la pila auxiliar
while (sp>=pos_insert-1){
spaux++;
pilaaux[spaux]=pila[sp];
sp--;
}
printf("\e[2J");
printf("Ingrese el numeropara insertar: ");
scanf("%d", &insertar);
sp++;
pila[sp]=insertar;
while(spaux>=0){
sp++;
pila[sp]=pilaaux[spaux];
spaux--;
}
}
break;
case 5:
printf("\e[2J");printf("Ingrese pos para eliminar: ");
scanf("%d", &pos_eliminar);
if(pos_eliminar>10){ printf("El numero mayor es 10");
getchar();getchar();
}
else if(pos_eliminar-1>sp){ printf("Laposicion no puede ser mayor al sp");
getchar();getchar();
}
else{
//pasa a la pila auxiliar
while(sp>=pos_eliminar){
spaux++;
pilaaux[spaux]=pila[sp];
sp--;
}
sp--;while(spaux>=0){
sp++;
pila[sp]=pilaaux[spaux];
spaux--;
}
}
break;
case 6:
salir=1;break;
default:
printf("\e[J");
printf("Ingrese 1,2,3,4,5,6");
getchar();getchar();
}
}
}
Regístrate para leer el documento completo.