实现队列部分操作

1.
向队尾添加元素：queue_push()。该函数比较复杂，主要要考虑到队列结构体已分配内存是否足够的问题，如果不够，需要分配新的内存，然后将原来内存上的元素转移到新内存空间上，之后还要处理新的front,
rear和capacity值；
2. 获取队首元素：queue_front()；
3. 获取队尾元素：queue_rear()；
4. 弹出队首元素：queue_pop()。注意要将front的新值取模。
以上的方法都未测试。