Pilha estática
Publicado por DEMIS CARLOS FONSECA GOMES 13/06/2004
[ Hits: 10.985 ]
Homepage: www.portonaweb.com
Download Pilha Estática DEMIS CARLOS.cpp
(Pra quem já conhece meus scritps, sao todos feitos em windows, mas com algumas alterações roda muito bem em Linux).
Insere elementos, lista os elementos empilhados, exclui elementos (Pilha estática).
/* Pilha estática,
Por Dêmis Carlos Fonseca Gomes
demiscarlos@hotmail.com
Ciencia da Computacao
2º Periodo
Universidade Federal do Tocantins
Palmas-TO.
*/
#include <stdio.h>
#include <conio.h>
#include <conio.c>
#include <stdlib.h>
#include <ctype.h>
#define MAX_ELEMENTOS 5
//*variaveis globais
int pilha[MAX_ELEMENTOS];
int topo=0;
/*prototipos
============*/
void push(int);
int pop(void);
void inserir(void);
void listar(void);
void remover(void);
/* poe um elemento na pilha*/
void push(int i)
{
if(topo>=MAX_ELEMENTOS)
{
printf("\t\t______________________\n");
printf("\n\n\n\t\t\tPILHA CHEIA\n\n");
printf("\t\t______________________\n");
return;
}
pilha[topo]=i;
topo++;
}
/*recupera o elemento do topo da pilha*/
int pop(void)
{
topo--;
if(topo<0)
{
printf("\t\t______________________\n");
printf("\n\n\n\t\t\tPilha vazia\n\n");
printf("\t\t______________________\n");
topo++;
return -1;
}
return pilha[topo];
}
/*insere um elemeto na pilha*/
void inserir(void)
{
int elemento;
printf("\n\nDigite o elemento a ser inserido na pilha -->> ");
scanf("%d",&elemento);
fflush(stdin);
push(elemento);
}
void remover(void)
{
int aux=pop();
if(aux!=-1)
printf("\n\nElemento removido da pilha: %d",aux);
}
void listar(void)
{
int i;
printf("\n topo(%d)\n",topo);
for(i=topo-1;i>=0;i--)
printf("\n%d) %d ",i,pilha[i]);
}
/*principal
============*/
main()
{
textcolor(17+128);
textbackground(6);
system("cls");
int aux;
char opcao;
int i,quant;
float max,min,*p;
clrscr();
for(aux=0;aux<MAX_ELEMENTOS;aux++)
pilha[aux]=0; /*inicializa a matriz com nulos*/
printf("\n\n\n\n\n\n\t\t\t\tBY DEMIS CARLOS\n\n");
printf("\t\t\tTECLE ENTER PARA CONTINUAR\n\n");
getch();
system("cls");
while(1)
{
printf("\n\n\nO que voce deseja: Inserir(i), Listar(l), Remover(r), Sair(s) --->> ");
opcao=getchar();
fflush(stdin);
opcao=toupper(opcao);
switch(opcao)
{
case 'I':inserir();
break;
case 'L':listar();
break;
case 'R':remover();
break;
case 'S':printf("\n Fim do programa!");
getch();
exit(0);
}
}/*while*/
}
Transforma a quantidade de dias digitados em anos, meses e dias
Parte 4 - Sessão de estudo sobre VETORES
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Erro ao instalar programa, "você tem pacotes retidos quebrados&qu... (3)
VOL já não é mais como antes? (15)
Como personalizar o lxde? [RESOLVIDO] (5)
Flatpaks não funcionam após atualizar pelo Gerenciador de Atualizações... (3)









