quinta-feira, 20 de agosto de 2015

Pilha Estática com Vetor




#include <stdio.h>
#include <stdlib.h>

#define TAMANHO 5

void menu();
void imprimir();

void push(int dado);
int pop();

int pilha[TAMANHO];
int posicao = 0;
int opcao;
int numero;

int main()
{
    opcao = 0;
    while(opcao!=3)
    {
        menu();
        if(opcao == 1)
        {
            printf("Digite o numero: ");
            scanf("%d", &numero);
            push(numero);
            imprimir();
        }
        if(opcao == 2)
        {
            numero = pop();
            printf("\n\nRetirado o %d da  pilha.\n\n",numero);
            imprimir();
        }
    }
}

void menu()
{
    printf("1 - push\n");
    printf("2 - pop\n");
    printf("3 - sair\n");
    printf("Digite a opcao: ");
    scanf("%d", &opcao);
}

void imprimir()
{
    system("PAUSE");
    int i;
    for(i = posicao - 1; i >=0; i--)
    {
        printf("+---+----+\n");
        printf("| %d | %2d |\n", i, pilha[i]);
    }
    if(posicao > 0)
        printf("+---+----+\n");
}

void push(int dado)
{
  if(posicao==TAMANHO){
    printf("\n\nCHEIA!!!\n\n");
    printf("\n");
  }else{
  pilha[posicao] = dado;
  posicao++;
  }

}

int pop()
{
if(posicao==0){
    return -1;
    printf("***PILHA VAZIA***");
}else{
    posicao--;
    return pilha[posicao];
}
}

Nenhum comentário:

Postar um comentário