Queue

FIFO

  • dequeue()
  • enqueue()

Implementation

Array

两个variable frontrear来记录位置, start from -1(empty queue)

  • enqueue() add to rear
  • dequeue() delete from front

will have function like isEmpty() to check if queue is empty and check front == rear

can do a cyclic array and reuse space

next position would be (i+1) % n, (rear + 1 ) % n == front mean it's full

Linked List

用一个tail记录现在List的end, head still head

  • enqueue() add after tail
  • dequeue() delete from head