Circular Queue (cap = 8)

front: vị trí phần tử kế tiếp sẽ dequeue. rear: vị trí phần tử kế tiếp sẽ enqueue ghi vào. Cả hai chạy vòng (mod 8).

Queue bằng 2 stack (bài 2 README)

enqueue(x): push vào in. dequeue(): nếu out rỗng → đổ toàn bộ in sang out (đảo thứ tự), rồi pop out. Amortized O(1).

in (cho enqueue)

out (cho dequeue)

Trung bình 5 số gần nhất (bài 4 README) — Sliding Window O(1)

Giữ queue tối đa 5 số + biến sum. Khi đủ 5: dequeue cũ nhất (sum -= old), enqueue mới (sum += new). Trung bình = sum / size.

Rate limiter: sliding-window log (README §7.1)

Queue giữ timestamp request. Mỗi request mới: bỏ timestamp đã rời cửa sổ (≤ now−window), rồi nếu chưa đủ limit thì cho qua.

Queue timestamp trong cửa sổ:
Tăng "now" mỗi lần để mô phỏng request đến theo thời gian.