Exemple #1
0
main()
{
	Pila dada,top,aux;
	int g=0;
	inicpila(&dada);
	inicpila(&top);
	inicpila(&aux);
	while (g<5)
	{
		leer(&dada);
		g++;
	}
	apilar(&top, desapilar(&dada));
	while (!pilavacia(&dada))
	{
		apilar(&aux, desapilar(&dada));
	}
	apilar(&dada, desapilar(&top));
	while (!pilavacia(&aux))
	{
		apilar(&dada, desapilar(&aux));
	}
	mostrar(&dada);
	getch();
	return(0);
}
Exemple #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;
}
Exemple #3
0
int main(int argc, char** argv){
    
    Pila p1, p2;
    int i;
    
    p1=crear();//creamos las pilas
    p2=crear();
    
    if(esta_vacia(p1) == true)//comprobamos que estabn vacias
    printf("La pila p1 esta vacia\n");
    
    if(esta_vacia(p2) == true)
    printf("La pila p2 esta vacia\n");
    
    for(i=0;i<20;i++){ //metemos numeros en la pila
                      if(i%2==0)
                      apilar(p1,i);
                      else
                      apilar(p2,i);
    }

printf("Los elementos de la pila p1 son: \n\t");
while(!esta_vacia(p1)) //mientras no este vacia
printf("%d ", desapilar(p1));//vamos sacando los numeros y mostandolos

puts("");
vaciar(p1);//la vaciamos

printf("Los elementos de la pila p2 son: \n \t");

while(!esta_vacia(p2))
printf("%d ",desapilar(p2));


destruir(p1);//eliminamos la pila
destruir(p2);

getche();
return (EXIT_SUCCESS);
}
Exemple #4
0
/* programa principal                                            */
int main (void){
	/* Carga la pila hasta que se llene o ingrese un cero */
	printf("ingrese un número distinto a 0: ");
	scanf("%d",&dato);
	while(dato!=0 && !pilallena()){
		apilar();
		printf("ingrese un número distinto a 0: ");
		scanf("%d",&dato);
	}
	/* Muestra la pila, perdiendo todos los    */
	/* elementos que estaban cargados en ella  */
	printf("Datos cargados en la pila\n");
	while(!pilavacia())	{
		printf("%d\n", primeropila());
		desapilar();
			}
	printf("Fin de datos\n");
       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);
}
//***************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);
    }

}