Algorithm size()
return
(N − f + r) mod N 
Algorithm isEmpty()
return
(f = r)


Algorithm enqueue(o)
if
size() = N − 1 then
throw FullQueueException
else
Q[r] ← o
r ← (r + 1) mod N 

Algorithm dequeue()
if
isEmpty() then
throw EmptyQueueException
else
o ← Q[f]
f ← (f + 1) mod N
return o 
