func (q *Deque) PushBack(elem interface{}) {
	q.growIfFull()
	q.buf[q.tail] = elem
	q.tail = q.next(q.tail)
	q.count++
}
PushBack appends an element to the back of the queue.  Implements FIFO when
elements are removed with PopFront(), and LIFO when elements are removed
with PopBack().
package deque
const minCapacity = 16
type Deque struct {
	buf   []interface{}
	head  int
	tail  int
	count int
}
func (q *Deque) Len() int {
	return q.count
}