Example #1
0
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;

}
Example #2
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;
}
Example #3
0
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);
}
Example #5
0
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);
    }

}