Baixe o app para aproveitar ainda mais
Prévia do material em texto
#include <stdio.h> #define MAX 8 #define true 1 #define false 0 typedef int bool; typedef int KEY; typedef struct { KEY chave; } DATA; typedef struct { DATA A[MAX]; int topo; } PILHA; void inicializar(PILHA* p) { p->topo = -1; } void reinicializar(PILHA* p) { p->topo = -1; } int size(PILHA* p) { return p->topo + 1; } void print(PILHA* p){ printf("Pilha: "); int i; for (i=p->topo; i>=0; i--) printf("%i ", p->A[i].chave); printf("\n"); } bool push(PILHA* p, DATA data){ if(p->topo >= MAX-1) return false; p->topo = p->topo+1; p->A[p->topo] = data; return true; } bool pop(PILHA* p, DATA* data){ if (p->topo == -1) return false; *data = p->A[p->topo]; p->topo = p->topo-1; return true; } int main() { DATA e, d1, d2, d3, d4, d5, d6, d7, d8; PILHA p; inicializar(&p); d1.chave = 1; d2.chave = 2; d3.chave = 3; d4.chave = 4; d5.chave = 5; d6.chave = 6; d7.chave = 7; d8.chave = 8; push(&p, d1); push(&p, d2); push(&p, d3); push(&p, d4); push(&p, d5); push(&p, d6); push(&p, d7); push(&p, d8); pop(&p, &e); pop(&p, &e); pop(&p, &e); pop(&p, &e); pop(&p, &e); push(&p, d1); print(&p); }
Compartilhar