A estrutura de fila (queue) em Array JavaScript

Nesse tutorial você vai aprender sobre a estrutura de dados queue (fila) e como implementar uma fila JavaScript usando métodos do tipo Array.

English version: https://www.javascripttutorial.net/javascript-queue/

Introdução à estrutura de dados de fila

Uma fila é uma lista ordenada de elementos em que um elemento é inserido no final da fila e elementos são removidos na frente da fila.

Uma fila funciona com base no princípio FIFO (first in, first out), ou seja, o primeiro a entrar é o primeiro a sair.

Uma fila possui duas operações principais envolvendo a inserção de um novo elemento e a remoção se um elemento existente.

A operação de inserção é chamada de enqueue (enfileirar) e a operação de remoção é chamada de dequeue (desenfileirar).

A operação de enfileiramento insere um elemento no final da fila, enquanto a operação de desenfileiramento remove um elemento da frente da fila.

A figura a seguir ilustra uma fila (queue):

The following figure illustrates a queue:

Outra operação importante de uma fila é obter o elemento da frente chamando peek (espiar). Diferente da operação de desenfileiramento, a operação de espiar, apenas retorna o elemento da frente, sem modificar a fila.

O nome queue (fila) vem da analogia de uma fila de clientes de um banco. O cliente que chegar primeiro, será atendido primeiro, o que vier depois, será colocado na fila, sempre no final da fila e será atendido mais tarde.

Implementando uma fila JavaScript usando um array

Você pode usar um array como uma fila, usando dois métodos do tipo Array.

  • Adicione um novo elemento no final da fila (do array) usando o método push(). Essa ação é equivalente à operação de enfileiramento.
  • Remova um elemento da frente de um array, usando o método shift(). Essa ação é o mesmo que a operação de desenfileiramento, ou seja, o primeiro é atendido e sai da fila.

A seguir, o construtor da fila:

A função construtora Queue() usa um array para armazenar seus elementos.

O método enqueue() adiciona um elemento no final da fila. Usamos o método push() do objeto array para inserir o novo elemento no final da fila.

O método dequeue() remove um elemento da fila. No método dequeue() usamos o método shift() do array para remover um elemento na frente da fila.

O método isEmpty() verifica se uma fila está vazia, conferindo se a propriedade length do array é zero.

O método peek() acessa o elemento na frente da fila, sem modificá-lo, apenas para conferir qual é. A palavra peek em inglês significa espiar ou olhadinha.

Para consultar o comprimento de uma fila, desenvolvemos o método length():

Para criar uma nova fila a partir de uma função do construtor Queue(), use a palavra-chave new da seguinte forma:

Para enfileirar números de 1 a 7, use o seguinte método:

Para obter o elemento que está na frente da fila, use o método peek().

Para obter o comprimento atual da fila, use o método length(), como no exemplo a seguir:

Para remover todos os elemento que estão na fila, removendo sempre o que está na frente da fila, um por um, use o método dequeue(), da seguinte maneira:

Exemplo completo

Agora, você deve entender bem a estrutura de dados de fila e saber como usar os métodos push() e o shift() do tipo Array para implementar uma fila em JavaScript.

Veja o índice de todos os tutoriais JavaScript

Tutoriais JavaScript

Suggested posts

Мои наиболее используемые ресурсы кодирования

Мои наиболее используемые ресурсы кодирования

На этой неделе я получил электронное письмо от участника ежедневного списка рассылки. Они хотели знать: какие ресурсы вы посещаете ежедневно, еженедельно и ежемесячно? Отличный вопрос! Я рад поделиться некоторыми мыслями о моем рабочем процессе и основных ресурсах, которые я использую.

Серия Lit library - 1: Глубокое погружение в библиотеку lit-html

Серия Lit library - 1: Глубокое погружение в библиотеку lit-html

Цель этой серии блогов — углубиться в библиотеку Lit и получить всестороннее представление о ее уникальных функциях и о том, чем она отличается от других библиотек и фреймворков на рынке. Серия разделена на три части, охватывающие такие темы, как 1.

Related posts

Как спасти планету и заработать деньги

Как спасти планету и заработать деньги

Сколько раз вы, не задумываясь, выбрасывали пластиковую бутылку, стеклянную банку, алюминиевую банку или пакет экологически чистой энергии? Сколько раз вы хотели получить что-то взамен за их переработку? Если вы похожи на большинство людей, ответ, вероятно, много раз. Переработка часто рассматривается как хлопотное дело, рутинная работа или обязанность, не приносящая немедленных или ощутимых выгод.

Что вы можете сделать в свой сезон ожидания (в ожидании вашей первой работы в сфере технологий)

Что вы можете сделать в свой сезон ожидания (в ожидании вашей первой работы в сфере технологий)

Переход к новой карьере может быть чрезвычайно сложным, если вы пытаетесь сделать это в одиночку. Важно найти партнеров по подотчетности, которые находятся на том же уровне обучения, что и вы, у которых схожие цели, упорство и стремление.

Преследование христиан: преступление на почве ненависти, о котором мы не говорим

Забудьте об исламофобии: христиане (и евреи) являются главными жертвами преступлений на почве религиозной ненависти.

Преследование христиан: преступление на почве ненависти, о котором мы не говорим

Любой здравомыслящий человек знает, что в политических и медийных кругах доминируют левые, даже крайне левые, что создает дисбаланс в политическом дискурсе. В области религии этот дисбаланс хорошо виден: левые газеты и сети не спешат защищать христианскую веру.

Что делает подкаст влиятельным?

Что делает подкаст влиятельным?

На прошлой неделе я заметил пресс-релиз, разосланный через PressGazette (новостной веб-сайт британских СМИ). В статье сообщалось, что Acast, скандинавская компания по размещению и рекламе подкастов, возглавит консорциум «вероятно, самых влиятельных» издателей подкастинга.