queue.go
func (queue *queue) Pop() interface{} {
	if queue.size == 0 {
		return nil
	}

	if queue.size < queue.cap/4 && queue.size > 4 {
		queue.resize(queue.cap / 2)
	}

	result := queue.elements[queue.start%int64(queue.cap)]
	queue.start++
	queue.size--

	return result
}
func (queue *queue) Pop() interface{} {
	if queue.size == 0 {
		return nil
	}

	if queue.size < queue.cap/4 && queue.size > 4 {
		queue.resize(queue.cap / 2)
	}

	result := queue.elements[queue.start%int64(queue.cap)]
	queue.start++
	queue.size--

	return result
}
// Pop removes an element from the front of the queue.