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.
Note: 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.