Pilha

Publicado por Leonardo Barrozo dos Santos 10/03/2003

[ Hits: 13.088 ]

Download pilha.c




Código fonte de um programa de pilha.

  



Esconder código-fonte

/*
 +-----------------------------------------------------------+
 | Programador: Leonardo Barrozo dos Santos                  |
 | Descrição..: Programa que demonstra o funcionamente de    |
 | ...........: uma pilha.                                   | 
 | Arquivo....: pilha.c                                      |
 +-----------------------------------------------------------+
*/

#include<stdio.h>
#define MAX 10   //MAX = Quantidade de elementos máximos na pilha

int topo=-1;      //Indica o topo da pilha

int pilha[MAX];  //Declaração da pilha 

void insere (void);    //Função que insere itens na pilha
void remover(void);    //Função que remove itens da pilha
void exibe  (void);    //Função que exibe os itens da pilha

int main (void)
{
 int op;
 for (;;)
 {
  system("clear");    //Limpa a tela, somente no Linux
  //---------------------------------
  //MENU PRINCIPAL
  //---------------------------------
  printf("\nMenu");   
  printf("\n\n1- Insere");
  printf("\n2- Remover");
  printf("\n3- Exibir");
  printf("\n4- Sair");
  printf("\n\nEntre a sua opção:");
  //---------------------------------
  scanf("%d",&op);
  switch(op) {
        case 1 : insere();
                 break;
        case 2 : remover();
                 break;
        case 3 : exibe();
                 break;
        case 4 : exit(0);
        default: printf("\nOpção Errada");
                 getchar();
                 break;                           
             }
 }
}

void insere (void)
{
 int i;
 topo = topo + 1;
 if (topo == MAX) //Insere itens na pilha até que topo for diferente de MAX
 {
  printf("\nPilha Cheia");
  topo = topo - 1;
  getchar();
 } 
 printf("Entre com o número (TOPO = %d): ",topo);
 scanf ("%d",&i);
 pilha[topo] = i;
} 

void remover (void)
{
 if (topo >= 0)
 {
  pilha[topo] = 0; 
  topo  = topo - 1;
 }
 else
 {
  printf("Pilha Vazia");
  getchar();
 }  
}

void exibe (void)
{
 int x;
 char s[80];
 system("clear");
 for (x=0;x<=topo;x++)
  printf("\n %d",pilha[x]);
 printf("\n (S)air");
 scanf("%s",s);
}

Scripts recomendados

Árvore binária - Pré-ordem

Introdução a Recursão

Desenhando uma curva Dragão ou o Fractal Jurassic Park

Controle de tráfego aéreo - filas dinâmicas

merge sort


  

Comentários
[1] Comentário enviado por ronaldovc em 25/04/2005 - 21:02h

Leonardo, seu script está bem enxuto, tive apenas que mudar algumas coisas pra conseguir o que precisava, ah! no freebsb teve alguns erros vou refazê-los e passo a correção vale!!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts