## Before Research A *Queue* is a 1-dimensional linear, dynamically-sized data structure that follows first-in, first-out principles. Supported operations are generally called: - *push*: appends an item to the end of the queue - *pop*: removes the first item in the queue - *size*: number of items in the queue Queues can be described using an [[Array]] as its underlying data container. - *pop*: checks to see if an item at index 0 exists; if it exists, temporarily store the value at index 0 in a variable and shift all remaining items in the array to the left by 1 and return the temporarily stored value it, otherwise returns null - *push*: internally should maintain the pointer to the "tail" of the queue, aka the index of the last item of the queue; if pointer is the same as the size of the queue, then resize the array; increment the pointer and store the item at that index. ## After Research