Untitled
unknown
c_cpp
a year ago
1.4 kB
7
Indexable
#include <stdio.h> #include <stdlib.h> #define MAX 10 // Tamanho máximo da pilha typedef struct { int itens[MAX]; int topo; } Pilha; // Inicializar a pilha void inicializar(Pilha* p) { p->topo = -1; } // Verificar se a pilha está vazia int estaVazia(Pilha* p) { return p->topo == -1; } // Verificar se a pilha está cheia int estaCheia(Pilha* p) { return p->topo == MAX - 1; } // Empilhar um elemento void empilhar(Pilha* p, int valor) { if (estaCheia(p)) { printf("Pilha cheia!\n"); } else { p->itens[++p->topo] = valor; } } // Desempilhar um elemento int desempilhar(Pilha* p) { if (estaVazia(p)) { printf("Pilha vazia!\n"); return -1; } else { return p->itens[p->topo--]; } } // Ver o elemento no topo da pilha int topo(Pilha* p) { if (estaVazia(p)) { printf("Pilha vazia!\n"); return -1; } else { return p->itens[p->topo]; } } int main() { Pilha pilha; inicializar(&pilha); // Empilhar alguns elementos empilhar(&pilha, 1); empilhar(&pilha, 2); empilhar(&pilha, 3); // Exibir o topo da pilha printf("Topo da pilha: %d\n", topo(&pilha)); // Desempilhar um elemento printf("Elemento desempilhado: %d\n", desempilhar(&pilha)); // Exibir o novo topo da pilha printf("Novo topo da pilha: %d\n", topo(&pilha)); return 0; }
Editor is loading...