Pilha

Run Settings
LanguageC
Language Version
Run Command
/* Pilha utilizando alocacao estatica (vetores) Operacoes: push( ): insere um elemento na pilha. pop( ): retorna e remove o ultimo elemento inserido na pilha. Operacoes auxiliares: topo(): retorna o ultimo elemento inserido na pilha sem remove-lo. size(): retorna o numero de elementos armazenados pilha_vazia(): retorna a indicacao se existe ou nao elementos na pilha. */ #include <stdio.h> #define MAX 10 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); for(i = 0; i<=3; i++ ) push(&pilha, i); printf("Topo-> "); while (!vazia(&pilha)) { pop(&pilha, &dado); printf("%d -> ",dado); } printf("Inicio da pilha"); fprintf(stdout,"\n\n");fflush(stdout); return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines