Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Scripts

Linux user

Publicado por Leonardo Barrozo dos Santos em 10/03/2003    [ 6023 hits ]

Login: lbsantos, 408542 pontos

   


Descrição

Código fonte de um programa de pilha.

[ Download: pilha.c ]   [ Enviar nova versão ]

[ 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
   Script Linux recomendado Desenhando uma superfície Bézier
   Script Linux recomendado Aritmética de ponteiros
   Script Linux recomendado Bublbubblesort
   Script Linux recomendado Passando uma matriz para funcao
   Script Linux recomendado Fila usando lista encadeada

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


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.