Algorithmsqueue simulation

Queue Simulation — Real-World Lines

TT
Testlaa Team
May 14, 20261 min read

Model ticket counters or print jobs with enqueue/dequeue; random service times become simulations on top of FIFO order.

Try this in Python

from collections import deque


def serve( arrivals: list[tuple[int, int]]) -> list[tuple[int, int]]:
    """(time, job_id) arrivals served FIFO."""
    q: deque[tuple[int, int]] = deque()
    done: list[tuple[int, int]] = []
    t = 0
    i = 0
    while i < len(arrivals) or q:
        while i < len(arrivals) and arrivals[i][0] <= t:
            q.append(arrivals[i])
            i += 1
        if q:
            at, jid = q.popleft()
            t = max(t, at) + 2
            done.append((t, jid))
        else:
            t = arrivals[i][0]
    return done


print(serve([(0, 1), (0, 2), (1, 3)]))

Key takeaways

  • Time jumps forward when the queue is idle.
  • FIFO ordering is preserved even with variable processing.
  • Great practice for discrete-event thinking.

Tags:

Stacks & queuesPythonStudents