Pilha
Publicado por Leonardo Barrozo dos Santos 10/03/2003
[ Hits: 13.342 ]
Código fonte de um programa de pilha.
/* +-----------------------------------------------------------+ | 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); }
Lista simplesmente encadeada com busca auto-organizada
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Quebra de linha na data e hora no Linux Mint
Organizando seus PDF com o Zotero
tentando instalar em um notebook antigo o Linux LegacyOS_2023... [RESO... (9)
Problema com Conexão Outlook via Firewall (OpenSUSE) com Internet Fibr... (5)