Esempio n. 1
0
int main(int argc, char *argv[]) {
	void *pilha;
	char valor[100];
	int count;
	
	pilha = novaPilha();
	
	count = 5;
	do {
		printf("Digite uma palavra: ");
		gets(valor);
		push(pilha,valor);
		imprimePilha(pilha);
		count--;
	} while(count > 0);
	
	imprimePilha(pilha);
	while(pop(pilha,valor) != 2) {		
		printf("Desempilhando: %s\n",valor);
		imprimePilha(pilha);
	}
	
	excluiPilha(pilha);
	
	return 0;
}
Esempio n. 2
0
int main (){
   
    Pilha *pilha;
    pilha = criaPilha(10);

    if (emptyPilha(pilha))
	{
		printf ("A pilha está vazia\n");
	}
    if (popPilha(pilha,NULL)==UNDERFLOW)
	{    
		printf ("Ocorreu UNDERFLOW da pilha\n");
	}
	
	for(long l = 0; ; l++)
	{	
		if(pushPilha(pilha, (int) l ) == OVERFLOW)
		{
			printf ("Ocorreu OVERFLOW da pilha no %ld-esimo elemento\n", l);
			break;
		}
	}
	
	imprimePilha(pilha);

    destroiPilha(&pilha);
    
    return 0;
}
Esempio n. 3
0
void invertePilha(pilha *pilinv, pilha *pil)
{
    int i, j = pil->topo;
    inicPilha(pilinv);
    for(i=j; i >= 0; i--)
    {
        push(pilinv, pil->vet[i]);
        pop(pil);
    }
    printf("Pilha Invertida:\n");
    imprimePilha(pilinv);
}