O documento discute estruturas de dados, incluindo estruturas lineares como pilhas e filas e não-lineares como tabelas de espalhamento e árvores. Ele explica como as filas funcionam com o princípio First In, First Out (FIFO), com métodos como enqueue para inserir e dequeue para remover itens. Também fornece um exemplo de como implementar e usar uma fila em JavaScript.
3. Estruturas
Valor
(value)
Node
Próximo
(next)
› Cada nó é uma estrutura
personalizada, com o valor
armazenado e a referência
do objeto seguinte
Valor
(value)
Node
Próximo
(next)
Valor
(value)
Node
Próximo
(next)
null
› Se não existir próximo,
aponta-se para nulo
Relembrando...
4. class Node {
constructor (value) {
this.value = value
this.next = null
}
}
JavaScript
Estrutura de um Nó
Relembrando...
5. › Seguem a lógica abstrata das filas reais
› O primeiro a entrar é o primeiro a sair
First In, First Out (FIFO)
8. enqueue (value) {
this.length++
let inserted = new Node(value)
if (this.first === null) {
this.first = inserted
this.last = inserted
} else {
this.last.next = inserted
this.last = inserted
}
}
JavaScript
Inserir Nó na Fila
9. dequeue () {
if (this.first === null)
return null
this.length--
let removed = this.first
this.first = removed.next
if (removed.next === null)
this.last = null
return removed.value
}
JavaScript
Remover Nó da Fila
10. quando usar?
› Implementação de buffer
› Pool de impressão
› Mensagens entre sistemas
› Prioridade de atendimento
11. import Queue from './Queue'
let characters = new Queue()
// Inserindo alguns personagens
characters.enqueue('Cartman')
characters.enqueue('Kyle')
characters.enqueue('Stan')
characters.enqueue('Butters')
characters.enqueue('Kenny')
// Repetindo enquanto houver personagens
while (characters.length) {
let who = characters.dequeue() // Remove
console.log(who) // Escreve o nome
}
JavaScript
Utilização