Correções do código apresentado (#19937)
* Correções do código apresentado Identação do código apresentado em JavaScript para melhor entendimento além de algumas correções e tradução do termo First In First Out para quem não fala inglês ter uma melhor noção do conceito. * Correções no código JavaScript apresentado * Update index.md
This commit is contained in:
committed by
Randell Dawson
parent
c0115cae0a
commit
2aaf1b0367
@ -1,15 +1,15 @@
|
|||||||
---
|
---
|
||||||
title: Queues
|
title: Queues
|
||||||
localeTitle: caudas
|
localeTitle: Filas
|
||||||
---
|
---
|
||||||
## Filas
|
## Filas
|
||||||
|
|
||||||
Fila é uma Estrutura de Dados First In First Out (FIFO). Muitos algoritmos usam filas em seu núcleo para melhorar o desempenho.
|
Fila é uma Estrutura de Dados First In First Out (FIFO) em português o primeiro a entrar é o primeiro a sair. Muitos algoritmos usam filas em seu núcleo para melhorar o desempenho.
|
||||||
|
|
||||||
A fila é um dos tipos abstratos de dados abstratos (ADT). É semelhante a filas que temos em filmes ou supermercados. A primeira pessoa a chegar será servida primeiro, certo? Da mesma forma, o primeiro elemento a ser inserido será removido primeiro. Existem vários tipos de filas, como
|
A fila é um dos tipos abstratos de dados abstratos (ADT). É semelhante a filas que temos em filmes ou supermercados. A primeira pessoa a chegar será servida primeiro, certo? Da mesma forma, o primeiro elemento a ser inserido será removido primeiro. Existem vários tipos de filas, como
|
||||||
|
|
||||||
1. Fila Simples (ou Fila)
|
1. Fila Simples (ou Fila)
|
||||||
2. Fila Circular
|
2. Fila Circular (ou Simplismente encadeada)
|
||||||
3. Fila de prioridade
|
3. Fila de prioridade
|
||||||
4. Dequeue (fila dupla terminada)
|
4. Dequeue (fila dupla terminada)
|
||||||
|
|
||||||
@ -17,18 +17,53 @@ Se você puder entender a fila simples (que daqui em diante será chamada de 'Fi
|
|||||||
|
|
||||||
As operações mais comuns disponíveis na fila são,
|
As operações mais comuns disponíveis na fila são,
|
||||||
|
|
||||||
1. Adicionar / Oferecer - insere um elemento no final da fila.
|
1. Add / Offer - insere um elemento no final da fila.
|
||||||
2. Remover / Pesquisar - Remove um elemento do começo da fila.
|
2. Remove / Poll - Remove um elemento do começo da fila.
|
||||||
3. Peek - Retorna o elemento no início da fila, mas não o remove.
|
3. Peek - Retorna o elemento no início da fila, mas não o remove.
|
||||||
4. Tamanho / Contagem - Retorna o número de elementos atualmente presentes na fila.
|
4. Size / Count - Retorna o número de elementos atualmente presentes na fila.
|
||||||
5. IsEmpty - Verifique se a fila está vazia ou não.
|
5. IsEmpty - Verifique se a fila está vazia ou não.
|
||||||
|
|
||||||
A implementação de uma fila é possível usando arrays ou listas vinculadas. A seguir, uma implementação de matriz simples da estrutura de dados da fila com suas operações mais comuns.
|
A implementação de uma fila é possível usando arrays ou listas vinculadas. A seguir, uma implementação de matriz simples da estrutura de dados da fila com suas operações mais comuns.
|
||||||
|
|
||||||
\`\` \`JavaScript
|
```javascript
|
||||||
var Queue = function () { var queue = \[\]; var front = 0; var back = 0; Retorna { isEmpty: function () { retornar frente> = voltar || queue.length === 0; } add: function (elem) { / \* Você também pode fazer queue.push (elem) em JavaScript. É assim que eles fazem em outros idiomas \* / fila \[voltar ++\] = elem; } remove: function () { if (! this.isEmpty ()) { fila de retorno \[frente ++\]; // ou queue.shift () } outro { throw new Error ("Fila está vazia"). } } espiada: function () { if (! this.isEmpty ()) { fila de retorno \[frente\]; } } } };
|
var Fila = function() {
|
||||||
|
var fila = [];
|
||||||
|
var inicio = 0;
|
||||||
|
var final = 0;
|
||||||
|
return {
|
||||||
|
isEmpty: function() {
|
||||||
|
return inicio >= final || fila.length === 0;
|
||||||
|
},
|
||||||
|
add: function(elem) {
|
||||||
|
/* Você também pode fazer fila.push(elem) em JavaScript.
|
||||||
|
Assim é como se fazem em outras linguagens */
|
||||||
|
fila[final++] = elem;
|
||||||
|
},
|
||||||
|
remove: function() {
|
||||||
|
if (!this.isEmpty()) {
|
||||||
|
return fila[inicio++]; // ou fila.shift()
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
throw new Error("A fila está vazia.");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
peek: function() {
|
||||||
|
if (!this.isEmpty()) {
|
||||||
|
return fila[inicio];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
var queue = new Fila (); console.log (queue.isEmpty ()); // verdade queue.add (1); fila.add (2); console.log (queue.remove ()); // 1 console.log (queue.peek ()); // 2 console.log (queue.remove ()); // 2 console.log (queue.remove ()); // exception \`\` \`
|
var fila = new Fila();
|
||||||
|
console.log(fila.isEmpty()); // Verdadeiro
|
||||||
|
fila.add(1);
|
||||||
|
fila.add(2);
|
||||||
|
console.log(fila.remove()); // 1
|
||||||
|
console.log(fila.peek()); // 2
|
||||||
|
console.log(fila.remove()); // 2
|
||||||
|
console.log(fila.remove()); // exception
|
||||||
|
```
|
||||||
|
|
||||||
#### Aplicações
|
#### Aplicações
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user