int main(){ t_pila pila; crearPila(&pila); t_info info; info.dato = 4; ponerEnPila(&pila,&info); printf("PILA LLENA: %s \n",pilaLlena(&pila)?"SI":"NO"); t_info ext; verTope(&pila,&ext); printf("TOPE DE PILA: %d \n",ext.dato); t_info ext2; sacarDePila(&pila,&ext2); printf("EXTRAIDO DE PILA: %d \n",ext2.dato); vaciarPila(&pila); printf("PILA VACIA: %s \n",pilaVacia(&pila)?"SI":"NO"); return 0; }
char* convertirDec(int num,int base) { const char valNum[]={"0123456789ABCDEF"}; char* cfinal,*aux; int contdigitos=0; t_info resparcial; t_pila pila; crearPila(&pila); if(num==0) { cfinal=(char*)malloc(sizeof(char)); *cfinal='0'; return cfinal; } while(num!=0) { resparcial.num=valNum[num%base]; num=num/base; if(!apilar(&pila,&resparcial)) return NULL; contdigitos++; } cfinal=(char*)malloc(sizeof(char)*(contdigitos+1)); //+1 por el \0 if(!cfinal) return NULL; aux=cfinal; while(desapilar(&pila,&resparcial)) { *aux=resparcial.num; aux++; } *aux='\0'; return cfinal; }
int main() { nodo *pila;//declarr pila int opcion, valor; //variables a utilizar // pila = crearPila(pila);//inicilizar la pila do { printf("---MENU---\n\n"); printf("(1) Insertar un numero a la pila creada \n"); printf("(2) Eliminar un numero a la pila creada \n"); printf("(3) El tope de la pila creada \n"); printf("(4) Imprimir la pila creada \n"); printf("(5) Salir de pila creada \n"); printf("opcion: "); scanf("%d", &opcion); switch(opcion) { case 1: printf("digite el valor a insertar: "); scanf("%d", &valor); pila= push(valor,pila); printf("se inserto el elemento a la pila creada \n"); break; case 2: pila=pop(pila); printf("se elimino el elemento del tope de la pila\n"); break; case 3: printf("el tope de la pila es: %d\n", topePila(pila)->dato); break; case 4: imprimirPila(pila); break; case 5: printf("adios"); break; } } while(opcion != 5); return 0; }
//**********MAIN**********// void main() { FILE* pf; t_cola cola; t_pila pila; t_lista lista; t_pedido ped; t_producto prod; int cont=1; abrirArchivo(&pf,"r+b"); mostrarArchivo(pf); crearCola(&cola); crearPila(&pila); crearLista(&lista); printf("\nACOLAR\n"); printf("\nIngrese numero de cliente: "); scanf("%d",&ped.nCliente); while(ped.nCliente!=0) { printf("Ingrese codigo de producto: "); scanf("%d",&ped.cod); printf("Ingrese cantidad pedida: "); scanf("%d",&ped.cant); acolar(&cola,&ped); printf("\nIngrese numero de cliente: "); scanf("%d",&ped.nCliente); } while(desacolar(&cola,&ped)) { printf("\nCliente: %d\nProducto: %d\nCantidad: %d unidades\n",ped.nCliente,ped.cod,ped.cant); fseek(pf,0,0); fread(&prod,sizeof(t_producto),1,pf); while(!feof(pf)) { if(ped.cod==prod.codPr) { if((prod.cantStock-ped.cant)>=prod.minStock) { printf("\nPedido del cliente %d.Fue realizado exitosamente.\n",ped.nCliente); prod.cantStock-=ped.cant; fseek(pf,-sizeof(t_producto),1); fwrite(&prod,sizeof(t_producto),1,pf); fseek(pf,0,1); } else { if((prod.cantStock-ped.cant)>=0) { printf("\nPedido del cliente %d.Fue realizado, stock por debajo del minimo necesario.\n",ped.nCliente); prod.cantStock-=ped.cant; fseek(pf,-sizeof(t_producto),1); fwrite(&prod,sizeof(t_producto),1,pf); fseek(pf,0,1); apilar(&pila,&prod); } else { printf("\nPedido del cliente %d.No tenemos el suficiente stock para afrontar la venta.\n",ped.nCliente); ponerEnLista(&lista,&ped); } } } fread(&prod,sizeof(t_producto),1,pf); } } printf("\nARCHIVO ACTUALIZADO\n"); fseek(pf,0,0); mostrarArchivo(pf); fclose(pf); }
int main(int argc, char **argv) { crearPila(); ProcesarEntrada(argv, argc); eliminarPila(); return 0; }
//***************MAIN***************// void main() { FILE* pf; t_dato dato; t_pila pila; int opc,cantReg,i; printf("\n**********MENU DE OPCIONES**********\n\ 1- Crear pila\n\ 2- Apilar\n\ 3- Desapilar\n\ 4- Pila vacia?\n\ 5- Pila llena?\n\ 6- Vaciar pila\n\ 7- Ver tope de pila\n\ 0- SALIR\n\n\ INGRESE EL NUMERO DE OPCION: "); scanf("%d",&opc); while(opc && opc!=0) { switch(opc) { case 1: crearPila(&pila); printf("\nSe ha creado la pila"); break; case 2: while(pila.tope!=TAM) { cargarDato(&dato); if(apilar(&pila,&dato)) printf("\nSe apilo el dato ingresado"); } printf("\nSE LLENO LA PILA"); break; case 3: if(desapilar(&pila,&dato)) { printf("Se desapilo el dato "); puts(dato.nom); } else printf("No se pudo desapilar el dato"); break; case 4: if(pilaVacia(&pila)) printf("La pila esta vacia"); else printf("La pila NO esta vacia"); break; case 5: if(pilaLlena(&pila)) printf("La pila esta llena"); else printf("Todavia hay lugar en la pila"); break; case 6: vaciarPila(&pila); printf("Se vacio la pila"); break; case 7: if(verTope(&pila,&dato)) { printf("El tope de pila es "); puts(dato.nom); } else printf("La pila esta vacia"); break; } printf("\n\n**********MENU DE OPCIONES**********\n\ 1- Crear pila\n\ 2- Apilar\n\ 3- Desapilar\n\ 4- Pila vacia?\n\ 5- Pila llena?\n\ 6- Vaciar pila\n\ 7- Ver tope de pila\n\ 0- SALIR\n\n\ INGRESE EL NUMERO DE OPCION: "); scanf("%d",&opc); } }