Você está aqui: C# ::: Estruturas de Dados ::: Filas |
Como criar uma fila em C# usando um vetor de ints - Estruturas de Dados em C#Quantidade de visualizações: 1109 vezes |
A Fila é uma estrutura de dados do tipo FIFO - First-In, First-Out (Primeiro a entrar, primeiro a sair). Neste tipo de estrutura, o primeiro elemento a ser inserido é o primeiro a ser removido. Funciona exatamente igual a fila de um banco, fila para comprar ingressos, fila para pagar no caixa da lanchonete, etc. Veja a imagem a seguir: ![]() Embora seja mais comum a criação de uma estrutura de dados do tipo Fila de forma dinâmica (usando ponteiros e referências), nesta dica eu mostrarei como podemos criá-la em C# usando um array, ou seja, um vetor. No exemplo eu usei inteiros, mas você pode modificar para o tipo de dados que você achar mais adequado. Veja o código completo para uma classe Fila usando um vetor de ints. Veja que o tamanho do vetor é informado no construtor da classe. Note também a lógica empregada na construção dos métodos enfileirar(), desenfileirar() e imprimirFila(): Código para Fila.cs: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- using System; namespace Estudos { class Fila { private int[] elementos; private int inicio; // início da fila private int final; // fim da fila private int maximo; // quantidade máxima de elementos na fila // construtor da Fila que aceita o tamanho public Fila(int tamanho) { // constrói o vetor com o tamanho informado this.elementos = new int[tamanho]; this.inicio = 0; // define o início como sendo o primeiro elemento this.final = -1; // fila vazia. Não tem final ainda this.maximo = tamanho; // ajusta a quantidade máxima de elementos } // método que permite enfileirar um novo elemento public void enfileirar(int item) { // a fila já está cheia if (this.final == (this.maximo - 1)) { Console.WriteLine("\nA fila está cheia.\n"); return; } // ainda há espaço na fila else { this.elementos[++this.final] = item; } } // método que permite desenfileirar e retornar // o elemento no início da fila public int desenfileirar() { // a fila está vazia if (this.inicio == (this.final + 1)) { Console.WriteLine("\nA fila está vazia.\n"); return -1; } // retorna o elemento desenfileirado else { Console.WriteLine("Elemento desenfileirado: " + this.elementos[this.inicio]); return this.elementos[this.inicio++]; } } // exibe os elementos da fila public void exibirFila() { // a fila está vazia if (this.inicio == (this.final + 1)) { Console.WriteLine("\nA fila está vazia.\n"); return; } else { for (int i = this.inicio; i <= this.final; i++) { Console.WriteLine("Item[" + (i + 1) + "]: " + this.elementos[i]); } } } } } Veja agora o código para a classe principal, ou seja, a classe Principal usada para testar a funcionalidade da nossa fila: Código para Principal.cs: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- using System; namespace Estudos { class Principal { static void Main(string[] args) { // Vamos criar uma nova fila com espaço para 5 elementos Fila fila = new Fila(5); // vamos inserir 3 elementos na fila fila.enfileirar(34); fila.enfileirar(27); fila.enfileirar(11); // vamos imprimir a fila Console.WriteLine("Os itens na fila são: "); fila.exibirFila(); // vamos desenfileirar dois itens Console.WriteLine(); fila.desenfileirar(); fila.desenfileirar(); // vamos imprimir a fila novamente Console.WriteLine("\nOs itens na fila são: "); fila.exibirFila(); Console.WriteLine("Pressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: Os itens na fila são: Item[1]: 34 Item[2]: 27 Item[3]: 11 Elemento desenfileirado: 34 Elemento desenfileirado: 27 Os itens na fila são: Item[3]: 11 |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de C# |
Veja mais Dicas e truques de C# |
Dicas e truques de outras linguagens |
Quem Somos |
![]() Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
|
![]() Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..
|
Linguagens Mais Populares |
1º lugar: Java |