题目要求
如果允许在循环队列的两端都可以进行插入和删除操作。要求:写出“从队尾删除”和“从队头插入”的算法;
完整代码
#include <iostream >
using namespace std;
template <typename ElemType>
struct Quene {
ElemType* items;
int head, tail;//队列的头、尾指针
int length;//当前存储的元素数量
int capacity;//队列容量
Quene(int c) {
head = tail = 0;//头指针,尾指针为0,队列为空
length = 0;
capacity = c;
items = new ElemType[capacity];
if (!items)exit(OVERFLOW);
}
~Quene() {
delete[]items; }//析构函数,释放动态申请的存储空
void Push_head(Quene& Q, ElemType e) {
//从队头入队
if ((Q.head -