[['kitten', 2], ['dog', 2], ['rabbit', 2]] Aqui o segundo valor (um inteiro) representa a prioridade do item. . Se enfileirarmos ['human', 1] com uma prioridade de 1 (assumindo que prioridades mais baixas recebem precedência), ele seria o primeiro item a ser retirado. A coleção seria assim: [['human', 1], ['kitten', 2], ['dog', 2], ['rabbit', 2]] . Nós começamos a escrever um PriorityQueue no editor de código. Você precisará adicionar um método de enqueue para adicionar itens com prioridade, um método de dequeue para remover itens, um método de size para retornar o número de itens na fila, um método de front para retornar o elemento na frente da fila e finalmente, um método isEmpty que retornará true se a fila estiver vazia ou false se não estiver. O enqueue deve aceitar itens com o formato mostrado acima ( ['human', 1] ), em que 1 representa a prioridade. O dequeue deve retornar apenas o item atual, não sua prioridade. Queue deve ter um método de enqueue .
testString: 'assert((function(){var test = new PriorityQueue(); return (typeof test.enqueue === "function")}()), "Your Queue class should have a enqueue method.");'
- text: Sua classe Queue deve ter um método de Queue dequeue .
testString: 'assert((function(){var test = new PriorityQueue(); return (typeof test.dequeue === "function")}()), "Your Queue class should have a dequeue method.");'
- text: Sua classe Queue deve ter um método de size .
testString: 'assert((function(){var test = new PriorityQueue(); return (typeof test.size === "function")}()), "Your Queue class should have a size method.");'
- text: Sua classe Queue deve ter um método isEmpty .
testString: 'assert((function(){var test = new PriorityQueue(); return (typeof test.isEmpty === "function")}()), "Your Queue class should have an isEmpty method.");'
- text: 'Seu PriorityQueue deve controlar corretamente o número atual de itens usando o método de size , à medida que os itens são enfileirados e retirados.'
testString: 'assert((function(){var test = new PriorityQueue(); test.enqueue(["David Brown", 2]); test.enqueue(["Jon Snow", 1]); var size1 = test.size(); test.dequeue(); var size2 = test.size(); test.enqueue(["A", 3]); test.enqueue(["B", 3]); test.enqueue(["C", 3]); return (size1 === 2 && size2 === 1 && test.size() === 4)}()), "Your PriorityQueue should correctly keep track of the current number of items using the size method as items are enqueued and dequeued.");'
- text: O método isEmpty deve retornar true quando a fila estiver vazia.
testString: 'assert((function(){var test = new PriorityQueue(); test.enqueue(["A", 1]); test.enqueue(["B", 1]); test.dequeue(); var first = test.isEmpty(); test.dequeue(); return (!first && test.isEmpty()); }()), "The isEmpty method should return true when the queue is empty.");'
- text: 'A fila de prioridade deve retornar itens com prioridade mais alta antes dos itens com prioridade mais baixa e retornar os itens na ordem de primeiro a sair, caso contrário.'
testString: 'assert((function(){var test = new PriorityQueue(); test.enqueue(["A", 5]); test.enqueue(["B", 5]); test.enqueue(["C", 5]); test.enqueue(["D", 3]); test.enqueue(["E", 1]); test.enqueue(["F", 7]); var result = []; result.push(test.dequeue()); result.push(test.dequeue()); result.push(test.dequeue()); result.push(test.dequeue()); result.push(test.dequeue()); result.push(test.dequeue()); return result.join("") === "EDABCF";}()), "The priority queue should return items with a higher priority before items with a lower priority and return items in first-in-first-out order otherwise.");'
```