Queues
Queues follow First In, First Out (FIFO). Enqueue adds to the end, dequeue removes from the front.
Example: Queues across languages
javascript
class Queue {
constructor() { this.items = []; this.head = 0; this.tail = 0; }
enqueue(x) { this.items[this.tail++] = x; }
dequeue() { return this.tail > this.head ? this.items[this.head++] : null; }
isEmpty() { return this.tail === this.head; }
}
python
from collections import deque
class Queue:
def __init__(self):
self.items = deque()
def enqueue(self, x):
self.items.append(x)
def dequeue(self):
return self.items.popleft() if self.items else None
def is_empty(self):
return len(self.items) == 0
java
import java.util.ArrayDeque;
public class QueueDemo {
private ArrayDeque items = new ArrayDeque<>();
public void enqueue(int x) { items.offer(x); }
public Integer dequeue() { return items.poll(); }
public boolean isEmpty() { return items.isEmpty(); }
}