Implement enqueue, dequeue, peek, and isEmpty for queue