Pilha estática
Publicado por DEMIS CARLOS FONSECA GOMES 13/06/2004
[ Hits: 11.017 ]
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*/
}
Converte Farenheit para Celsius
Cálculo de Energia de um Corpo
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
fusermount3 no Ubuntu 25.10 - mantenha o perfil do AppArmor
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Criação de diretórios e aplicação de restrições de acesso no Linux
diferença entre o Tor baixado pelo Gerenciador de Aplicativos e o Tor ... (2)
Podem me chamar de 1mbecil :) (2)
Debian Stable travado em atualizações: dist-upgrade não resolve [RESOL... (11)
Como ler fonte de um projeto? [RESOLVIDO] (5)
Perfil criado no samba ad dc não loga no Windows 10 e 11 [RESOLVIDO] (14)









