Implement **Queue Data Structure** using Array with all functions like poll(), add(), peek(), size() etc.

**Note:** A queue is a data structure that follows the FIFO (First-In, First-Out) approach.

## Solutions

### Method 1: In O(1) time and O(n) space

A queue works on the principle of **first in, first out**, so we have to keep track of the **"start"** and **"end"** of the queue.

Initially, "start" and "end" will both point to "-1". All additions will be done at "end" and "deletion/poll" will be performed at "start".

Add an element in the queue by increasing the end by **(end + 1) % maxSize**.

To poll, make sure currentSize is not equal to zero. If it is not, return element at start and increase start's value by **start+1 % maxSize**.

##### Complexity

The time complexity of this solution is **O(1)** and space complexity is **O(N)**.