Quick actions

cmd+k|ctrl+k

Navigation

Languages

pilha de verdade

Snippet info

Language

C

Visibility

public

Author

jpparella

Created

2018-05-03T23:24:45Z

Updated

2018-05-04T01:02:15Z

#include <stdio.h>
#define MAX 99

typedef struct typePilha {
  int topo;
  int vet[MAX];
} typePilha;


void inicia (typePilha *p)
{
  p->topo = -1;
}

int cheia (typePilha *p)
{
  return (p->topo==MAX-1);
}

int vazia(typePilha *p)
{
  return (p->topo==-1);
}

int push (typePilha *p, int val)
{
   if (cheia(p))
	  return 0; // pilha cheia
   p->vet[++p->topo]=val;
   return 1;
}


int pop (typePilha *p, int *val)
{
   if (vazia(p))
	  return 0;  // pilha vazia
   *val=p->vet[p->topo--];
   return 1;
}

int main(){
	int i, dado;
	typePilha pilha;
	inicia(&pilha);
	while (1){
		if (cheia (&pilha))
		   break;
	    printf("Digite o valor(negativo p/ parar)\n",i);
        scanf("%d", &dado);
        if (dado >= 0){
           push(&pilha, dado);  
        }
        else
           break;
	}
	
    
    printf("Topo-> ");
	 while (!vazia(&pilha)) {
    	pop(&pilha, &dado);
    	printf("%d -> ",dado);
    }
    printf("Inicio da pilha");
	
	fprintf(stdout,"\n\n");fflush(stdout);
	return 0;
}
INFO