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.

Pilha em C#

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

  1. A primeira etapa รฉ usada para declarar a pilha. Aqui estamos declarando โ€œstโ€ como uma variรกvel para armazenar os elementos de nossa pilha.
  2. A seguir, adicionamos 3 elementos ร  nossa pilha. Cada elemento รฉ adicionado atravรฉs do mรฉtodo Push.
  3. 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.
  4. 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.
  5. 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:

Pilha em C#

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.

Pilha em C#

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

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

Pilha em C#

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.

Resuma esta postagem com: