Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define MAX 10
- typedef struct pilha
- {
- int dados[MAX], topo;
- } tpilha;
- void inicia_pilha(tpilha *p);
- void empilha(tpilha *p, int dado);
- int desempilha(tpilha *p);
- int pilha_vazia(tpilha p);
- int pilha_cheia(tpilha p);
- int top(tpilha p);
- void imprime_pilha(tpilha p);
- int main()
- {
- tpilha p;
- inicia_pilha(&p);
- int vazia = pilha_vazia(p);
- printf("%d\n", vazia);
- int x, y;
- scanf("%d",&x);
- empilha(&p, x);
- scanf("%d",&y);
- empilha(&p, y);
- int cheia = pilha_cheia(p);
- printf("%d\n", cheia);
- int topp = top(p);
- printf("top = %d\n", topp);
- imprime_pilha(p);
- return 0;
- }
- void inicia_pilha(tpilha *p)
- {
- p->topo = -1;
- }
- int pilha_cheia(tpilha p)
- {
- return p.topo == MAX-1;
- /*if(p.topo == MAX-1) return 1;
- else return 0;*/
- }
- int pilha_vazia(tpilha p)
- {
- return p.topo == -1;
- }
- void empilha(tpilha *p, int dado)
- {
- if(!pilha_cheia(*p))
- {
- p->dados[++p->topo] = dado;
- /*p->topo++;
- p->dados[p->topo] = dado;*/
- }
- else printf("pilha cheia!");
- }
- int desempilha(tpilha *p)
- {
- int dado;
- if(!pilha_vazia(*p))
- {
- return p->dados[p->topo--];
- /*dado = p->dados[p->topo];
- p->topo--;
- return dado;*/
- }
- else return -1;
- }
- int top(tpilha p)
- {
- return p.dados[p.topo];
- }
- void imprime_pilha(tpilha p)
- {
- int i;
- for(i=p.topo; i>=0; i--)
- {
- printf("%d ", p.dados[i]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement