
Para descobrir como fazemos uma pilha, basicamente temos que saber o que é uma pilha. Um pilha nada mais é do que um agrupamento de informações, porém ela tem uma organização diferente de um agrupamento comum, ela tem regras que devem ser seguidas. Primeiramente deve-se ter em sua mente que esta pilha é igual a uma pilha de roupas, pratos, livros... assim como a imagem abaixo demonstra:

E assim como a imagem demonstra o primeiro livro que entra na pilha é o ultimo que sai da pilha, veja que o livro vermelho foi o último livro a entrar na pilha, porém caso fossemos desempilhar ele seria o primeiro livro a ser retirado. Sendo assim:
Primeiro Livro que entra -> Último Livro que sai.
Último Livro que entra -> Primeiro Livro que sai.
Agora que já temos uma boa ideia do que é esta Pilha, vamos compreender como fazer uma Pilha Estática (pilha que tem seu valor fixo).
Primeiramente devemos criar uma variável para nossa pilha:
-Código:
int const MAXTAM = 1000; //Variável constante que irá conter o valor máximo de itens dentro da pilha.
int Pilha[MAXTAM]; //Variável do tipo vetor que será a Pilha.
int Topo; //Variável que irá guardar o item que estará no Topo da Pilha.
Primeiro Livro que entra -> Último Livro que sai.
Último Livro que entra -> Primeiro Livro que sai.
Agora que já temos uma boa ideia do que é esta Pilha, vamos compreender como fazer uma Pilha Estática (pilha que tem seu valor fixo).
Primeiramente devemos criar uma variável para nossa pilha:
-Código:
int const MAXTAM = 1000; //Variável constante que irá conter o valor máximo de itens dentro da pilha.
int Pilha[MAXTAM]; //Variável do tipo vetor que será a Pilha.
int Topo; //Variável que irá guardar o item que estará no Topo da Pilha.
Agora que já definimos as variáveis iniciais, vamos definir os tipos de funções para a nossa pilha:
Pilha_Construtor - Função para iniciar criar e iniciar o topo da pilha na posição "Nulo".
-Código:
void Pilha_Construtor(){
Topo = -1;
}
Pilha_Vazia - Função para verificar se a pilha está vazia.
-Código:
bool Pilha_Vazia(){
if(Topo==-1){
return true;
}else{
return false;
}
}
Pilha_Tamanho - Função que verifica e informa o tamanho da pilha.
-Código:
int Pilha_Tamanho(){
return Topo+1;
}
Pilha_Cheia - Função que verifica e informa se a pilha está cheia.
-Código:
bool Pilha_Cheia(){
if(Topo==MAXTAM-1){
return true;
}else{
return false;
}
}
Pilha_Push - Função para adicionar um item na pilha (empilhar).
-Código:
bool Pilha_Push(int valor){
if( Pilha_Cheia() ){
return false;
}else{
Topo++;
Pilha[Topo] = valor;
return true;
}
}
Pilha_Pop - Função para retirar um item da pilha (desempilhar).
-Código:
bool Pilha_Pop(int &valor){
if( Pilha_Vazia() ){
return false;
}else{
valor=Pilha[Topo];
Topo--;
return true;
}
}
Pilha_Get - Função para consultar a pilha e ver quem está no topo.
-Código:
bool Pilha_Get(int &valor){ //Consulta
if( Pilha_Vazia() ){
return false;
}else{
valor=Pilha[Topo];
return true;
}
}
Agora que já temos as variáveis e as funções, devemos ir para o código principal e chamar estas funções, irei deixar aqui um pequeno trecho do código principal para que as funcionalidades básicas sejam executadas:
int main(){
int valor;
Pilha_Construtor();
Pilha_Push(5); //Comando para adicionar um item na pilha, 5 é o item.
system("pause");
return 0;
}
Basicamente é isto, agora você pode pegar as funções acima e ir fazendo a sua pilha de acordo com sua necessidade. Por fim vou adicionar aqui o video que eu assisti para trazer todas estas informações acima aqui para o blog. Aconselho muito a vocês assistirem!
Video/Referência:
Pilha_Construtor - Função para iniciar criar e iniciar o topo da pilha na posição "Nulo".
-Código:
void Pilha_Construtor(){
Topo = -1;
}
Pilha_Vazia - Função para verificar se a pilha está vazia.
-Código:
bool Pilha_Vazia(){
if(Topo==-1){
return true;
}else{
return false;
}
}
Pilha_Tamanho - Função que verifica e informa o tamanho da pilha.
-Código:
int Pilha_Tamanho(){
return Topo+1;
}
Pilha_Cheia - Função que verifica e informa se a pilha está cheia.
-Código:
bool Pilha_Cheia(){
if(Topo==MAXTAM-1){
return true;
}else{
return false;
}
}
Pilha_Push - Função para adicionar um item na pilha (empilhar).
-Código:
bool Pilha_Push(int valor){
if( Pilha_Cheia() ){
return false;
}else{
Topo++;
Pilha[Topo] = valor;
return true;
}
}
Pilha_Pop - Função para retirar um item da pilha (desempilhar).
-Código:
bool Pilha_Pop(int &valor){
if( Pilha_Vazia() ){
return false;
}else{
valor=Pilha[Topo];
Topo--;
return true;
}
}
Pilha_Get - Função para consultar a pilha e ver quem está no topo.
-Código:
bool Pilha_Get(int &valor){ //Consulta
if( Pilha_Vazia() ){
return false;
}else{
valor=Pilha[Topo];
return true;
}
}
Agora que já temos as variáveis e as funções, devemos ir para o código principal e chamar estas funções, irei deixar aqui um pequeno trecho do código principal para que as funcionalidades básicas sejam executadas:
int main(){
int valor;
Pilha_Construtor();
Pilha_Push(5); //Comando para adicionar um item na pilha, 5 é o item.
system("pause");
return 0;
}
Basicamente é isto, agora você pode pegar as funções acima e ir fazendo a sua pilha de acordo com sua necessidade. Por fim vou adicionar aqui o video que eu assisti para trazer todas estas informações acima aqui para o blog. Aconselho muito a vocês assistirem!
Video/Referência:

Nenhum comentário:
Postar um comentário