C#

Já vimos diversos tipos de Array a já aprendemos o que são Classes de Coleção, se você não viu ou não conhece procure nos Posts Relacionados no final da página.

Hoje vamos ver a Classe de Coleção Queue e Stack.


Queue

Essa classe utiliza o famoso conceito FIFO (First-in, First-out: primeiro a entrar, primeira a sair).

Imagine 3 potes vc enche o pote 1, o pote 2 e o pote 3, o pote 1 foi o primeiro a ser preenchido, agora você vai esvaziar o pote 1 depois o pote 2 e em seguida o pote 3. Pronto!

using System;
using System.Collections;

// instânciamos uma nova fila
 Queue novaFilaN = new Queue();

 // Criamos um array com valores
 int[] nums = new int[]{2, 4, 6, 7, 8, 9};

 // inserimos valores na fila
 foreach (int numeros in nums)
 {
     novaFilaN.Enqueue(numeros);
     Console.WriteLine(numeros + "<- Enfileramos\n");
 }

 Console.WriteLine("\n Nossa Fila está assim: ");

 // percorremos a fila
 foreach (int num in novaFilaN)
 {
     Console.WriteLine(num);
 }

 Console.WriteLine("\n --- Agora vamos retirar os valores da fila --- \n");
 // esvaziamos a fila

 while (novaFilaN.Count > 0)
 {
     int number = (int)novaFilaN.Dequeue();
         /** O casting é nesessário pois a Classe de Coleção Queue
          *  é uma classe Generalizada e armazena os valores como object
          *  OBS: Não confundam classes Generalizadas com classes Genéricas
          */
     Console.WriteLine(number + " <- Retiramos ");
 }

A saída vai ser essa:

Queue

Stack

A classe Stack implementa o mecanismo LIFO (Last-In, First-Out, último a entrar é o primeiro a sair).

É como uma pilha de pratos, o último prato colocado é o primeiro a ser retirado da pilha =D

Stack pilha = new Stack();

 int[] numeros = new int[] { 2, 4, 6, 7, 8, 9 };

 foreach (int num in numeros)
 {
pilha.Push(num);
Console.WriteLine(num + " <- empilhamos\n");
 }

 Console.WriteLine("\n Nossa Pilha está assim: ");

 // percorremos a pilha
 foreach (int numbs in pilha)
 {
Console.WriteLine(numbs);
 }

 Console.WriteLine("\n --- Agora vamos retirar os valores da fila --- \n");

 //esvaziamos a pilha
 while (pilha.Count > 0)
 {
int number = (int)pilha.Pop();
Console.WriteLine(number + " <- Retiramos da Pilha");
 }

A saída será essa:

stack

Até a próxima!

Posts Relacionados