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: 1672 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 |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






