Pilha C# com exemplos Push e Pop
O que รฉ pilha em C#?
A pilha รฉ uma coleรงรฃo de casos especiais que representa o conceito LIFO (รบltimo a entrar, primeiro a sair). Para entender primeiro o LIFO, vamos dar um exemplo. Imagine uma pilha de livros com cada livro colocado um em cima do outro.
O conceito de รบltimo a entrar, primeiro a sair, no caso de livros, significa que apenas o livro que estรก no topo pode ser removido da pilha de livros. Nรฃo รฉ possรญvel retirar um livro do meio, pois isso atrapalharia a configuraรงรฃo da pilha.
Daqui em C#, a pilha tambรฉm funciona da mesma maneira. Os elementos sรฃo adicionados ร pilha, um em cima do outro. O processo de adicionar um elemento ร pilha รฉ chamado de operaรงรฃo push. Para remover um elemento de uma pilha, vocรช tambรฉm pode remover o elemento mais alto da pilha. Esta operaรงรฃo รฉ conhecida como pop.
Vejamos as operaรงรตes disponรญveis para a coleรงรฃo Stack com mais detalhes.
Declaraรงรฃo da pilha
Uma pilha รฉ criada com a ajuda do tipo Stack Data. A palavra-chave โnovoโ รฉ usada para criar um objeto de uma pilha. O objeto รฉ entรฃo atribuรญdo ร variรกvel st.
Stack st = new Stack()
Adicionando elementos ร pilha
O mรฉtodo push รฉ usado para adicionar um elemento ร pilha. A sintaxe geral da instruรงรฃo รฉ fornecida abaixo.
Stack.push(element)
Removendo elementos da pilha
O mรฉtodo pop รฉ usado para remover um elemento da pilha. A operaรงรฃo pop retornarรก o elemento mais alto da pilha. A sintaxe geral da instruรงรฃo รฉ fornecida abaixo
Stack.pop()
Contar
Esta propriedade รฉ usada para obter o nรบmero de itens na pilha. Abaixo estรก a sintaxe geral desta instruรงรฃo.
Stack.Count
contรฉm
Este mรฉtodo รฉ usado para verificar se um elemento estรก presente na pilha. Abaixo estรก a sintaxe geral desta instruรงรฃo. A instruรงรฃo retornarรก verdadeiro se o elemento existir, caso contrรกrio, retornarรก o valor falso.
Stack.Contains(element)
Agora vamos ver isso funcionando no nรญvel do cรณdigo. Todo o cรณdigo mencionado abaixo serรก escrito em nosso Aplicaรงรฃo da consola. O cรณdigo serรก gravado em nosso arquivo Program.cs.
No programa abaixo, escreveremos o cรณdigo para ver como podemos usar os mรฉtodos mencionados acima.
Exemplo 1: Mรฉtodo Stack.Push()
Neste exemplo, veremos
- Como uma pilha รฉ criada.
- Como exibir os elementos da pilha e usar os mรฉtodos Count e Contain.
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
class Program
{
static void Main(string[] args)
{
Stack st = new Stack();
st.Push(1);
st.Push(2);
st.Push(3);
foreach (Object obj in st)
{
Console.WriteLine(obj);
}
Console.WriteLine(); Console.WriteLine();
Console.WriteLine("The number of elements in the stack " +st.Count);
Console.WriteLine("Does the stack contain the elements 3 "+st.Contains(3));
Console.ReadKey();
}
}
}
Explicaรงรฃo do cรณdigo: -
- A primeira etapa รฉ usada para declarar a pilha. Aqui estamos declarando โstโ como uma variรกvel para armazenar os elementos de nossa pilha.
- A seguir, adicionamos 3 elementos ร nossa pilha. Cada elemento รฉ adicionado atravรฉs do mรฉtodo Push.
- Agora, como os elementos da pilha nรฃo podem ser acessados โโatravรฉs da posiรงรฃo do รญndice como o lista de matrizes, precisamos usar uma abordagem diferente para exibir os elementos da pilha. O Objeto (obj) รฉ uma variรกvel temporรกria, que รฉ declarada para conter cada elemento da pilha. Em seguida, usamos a instruรงรฃo foreach para percorrer cada elemento da pilha. Para cada elemento da pilha, o valor รฉ atribuรญdo ร variรกvel obj. Em seguida, usamos o comando Console.Writeline para exibir o valor no console.
- Estamos usando a propriedade Count (st.contar) para obter o nรบmero de itens na pilha. Esta propriedade retornarรก um nรบmero. Em seguida, exibimos esse valor no console.
- Em seguida, usamos o mรฉtodo Contains para ver se o valor 3 estรก presente em nossa pilha. Isso retornarรก um valor verdadeiro ou falso. Em seguida, exibimos esse valor de retorno no console.
Se o cรณdigo acima for inserido corretamente e o programa for executado, a seguinte saรญda serรก exibida.
Saรญda:
Na saรญda, podemos ver que os elementos da pilha sรฃo exibidos. Alรฉm disso, o valor True รฉ exibido para indicar que o valor 3 estรก definido na pilha.
Observaรงรฃo: vocรช notou que o รบltimo elemento colocado na pilha รฉ exibido primeiro. Este รฉ o elemento mais alto da pilha. A contagem de elementos da pilha tambรฉm รฉ mostrada na saรญda.
Exemplo 2: Mรฉtodo Stack.Pop()
Agora vamos dar uma olhada na funcionalidade โremoverโ. Veremos o cรณdigo necessรกrio para remover o elemento superior da pilha.
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
class Program
{
static void Main(string[] args)
{
Stack st = new Stack();
st.Push(1);
st.Push(2);
st.Push(3);
st.Pop();
foreach (Object obj in st)
{
Console.WriteLine(obj);
}
Console.ReadKey();
}
}
}
Explicaรงรฃo do cรณdigo: -
- Aqui apenas emitimos o mรฉtodo pop que รฉ usado para remover um elemento da pilha.
Se o cรณdigo acima for inserido corretamente e o programa for executado, a seguinte saรญda serรก exibida.
Saรญda:
Podemos ver que o elemento 3 foi removido da pilha.
Resumo
- Uma Stack รฉ baseada no conceito last in first out. A operaรงรฃo de adicionar um elemento ร pilha รฉ chamada de operaรงรฃo push. A operaรงรฃo de remoรงรฃo de um elemento da pilha รฉ chamada de operaรงรฃo pop.




