Pilha estatica de inteiros

Disponível somente no TrabalhosFeitos
  • Páginas : 2 (263 palavras )
  • Download(s) : 0
  • Publicado : 22 de abril de 2013
Ler documento completo
Amostra do texto
#include
#define MAX_ELEMENTOS 10

typedef struct {
int itens[MAX_ELEMENTOS];
int topo;
} t_pilha;

t_pilha p;
int novoValor;
void cria_pilha() {
p.topo = -1; // -1significa pilha vazia
}
int vazia() {
return (p.topo == -1 ? 1 : 0);
}
int cheia() {
return (p.topo == (MAX_ELEMENTOS - 1) ? 1 : 0);
}
void push(int e) {
p.topo++; // incrementa variáveltopo
p.itens[p.topo] = e; // coloca o elemento e no topo da pilha
}

void pop() {
if (vazia()) {
printf("/n Pilha vazia /n");
return;
}
printf("Elemento %deliminado com sucesso", p.itens[p.topo]);
p.topo--; // decrementa uma posição do topo.
}
void mostra_topo() {
if (vazia()) {
printf("\n Pilha vazia! \n");
return;
}printf("\n+++++ TOPO DA PILHA +++++\n");
printf("%d", p.itens[p.topo]);
}
void mostra_tudo() {
int i;
if (vazia()) {
printf("\n Pilha vazia! \n");
return;
}printf("\n+++++ TODOS ELEMENTOS+++++\n");
for (i = p.topo; i >= 0; i--) {
printf("%d\n", p.itens[i]);
}
}
int menu() {
int opcao;
printf("\n\n Opcoes possiveis \n");printf("0 - Sair\n");
printf("1 - Inserir\n");
printf("2 - Remover\n");
printf("3 - Mostrar topo\n");
printf("4 - Mostrar tudo\n");
printf("\nO que deseja fazer? ");scanf("%d", &opcao);
return opcao;
}
void lerDados() {
printf("\n\n=== Lendo os dados ===\n");
printf("Digite o valor a ser inserido na pilha: ");
scanf("%d", &novoValor);
}int main() {
int opcao;
cria_pilha();
do {
opcao = menu();
switch (opcao) {
case 0:
break;
case 1: // inseririf (cheia()) {
printf("\n Pilha cheia! \n");
break;
}
lerDados();
push(novoValor);
break;...
tracking img