Queue examples
These examples enqueue two reports and dequeue them in arrival order.
Python
from collections import deque
def print_label_value(label, value):
print(f"\033[1;36m{label}:\033[0m {value}")
def queue_state(queue):
return ", ".join(queue) if queue else "empty"
waiting_reports = deque()
waiting_reports.append("GS-2042")
print_label_value("1. Enqueue GS-2042", queue_state(waiting_reports))
waiting_reports.append("GS-2043")
print_label_value("2. Enqueue GS-2043", queue_state(waiting_reports))
print_label_value("3. Dequeue", waiting_reports.popleft())
print_label_value("4. Dequeue", waiting_reports.popleft())
print_label_value("5. Queue status", queue_state(waiting_reports))
JavaScript
function printLabelValue(label, value) {
console.log(`\x1b[1;36m${label}:\x1b[0m`, value);
}
class Queue {
constructor() {
this.items = [];
this.front = 0;
}
enqueue(value) {
this.items.push(value);
}
dequeue() {
if (this.isEmpty()) {
throw new Error("cannot dequeue from an empty queue");
}
const value = this.items[this.front];
this.front += 1;
return value;
}
isEmpty() {
return this.front >= this.items.length;
}
state() {
return this.isEmpty() ? "empty" : this.items.slice(this.front).join(", ");
}
}
const waitingReports = new Queue();
waitingReports.enqueue("GS-2042");
printLabelValue("1. Enqueue GS-2042", waitingReports.state());
waitingReports.enqueue("GS-2043");
printLabelValue("2. Enqueue GS-2043", waitingReports.state());
printLabelValue("3. Dequeue", waitingReports.dequeue());
printLabelValue("4. Dequeue", waitingReports.dequeue());
printLabelValue("5. Queue status", waitingReports.state());
Expected output
1. Enqueue GS-2042: GS-2042
2. Enqueue GS-2043: GS-2042, GS-2043
3. Dequeue: GS-2042
4. Dequeue: GS-2043
5. Queue status: empty