Esempio n. 1
0
int empilha(PilhaGenerica *p, void *info){
    if(pilha_cheia(*p))
        return ERRO_PILHA_CHEIA;

    p -> topo++;
    p -> dados[p->topo] = malloc(p -> tamInfo);
    memcpy(p -> dados[p -> topo ], info, p -> tamInfo);
    return 1;
}
Esempio n. 2
0
//Esta funcao se encarrega de empilhar um item novo na pilha,esse empilhamento
//se da sempre no topo da pilha.
void push(char X, pilha *P)
{
	if(pilha_cheia(P)==1)
	{ clrscr();
	  printf("\nA pilha esta cheia");
	  getch();
	  return;
	}
	else
	{ ++(P->topo); /*eh a mesma coisa que: P->topo=P->topo+1*/
	  P->entradas[P->topo]=X;
	}
	return;
}
Esempio n. 3
0
//funcao principal
//aqui serão feitas as intervenções com io usuário
int main ()
{
pilha p;//cria uma pilha chamada "p" vazia
p = criar_pilha();//define a estrutura de "p" e aplica p.topo=N-1 (contido em Criar_Pilha)
char nomes[50]; //string para receber o que o usuário digita 
while (pilha_cheia(p)==false)//enquanto a pilha não estiver cheia faça(...)
{
printf ("Digite um nome: ");
scanf("%s", nomes);
push(p,nomes);
/*leva para empilhar "p" e "nomes", que na função "Push"
recebe o nome de "val"*/
}
//desempilhando
while (pilha_vazia(p)==false)
{
//consulta a pilha
top(p,nomes);
printf("Vou desempilhar: %s\n", nomes);//exibe o nome desempilhado
pop(p);//desempilha 1
//o "p.topo" mostra o valor atual do índice
}
system("Pause");
}