📄 aqueue.h
字号:
//AQueue.h
template <class Elem>
class AQueue
{
private:
Elem* arrayQueue;
int size;
int front;
int rear;
public:
AQueue(int sz = 100)
{
size = sz + 1;
arrayQueue = new Elem[size];
front = rear = 0;
}
~AQueue()
{
delete [] arrayQueue;
}
void Clear()
{
//可以不赋0
front = rear;
}
bool Push(const Elem& a)
{
if((rear + 1) % size == front)
{
cerr << "Error:the queue is full!" << endl;
return false;
}
arrayQueue[rear++] = a;
rear %= size;
return true;
}
Elem Front()const
{
if(front == rear)
{
cerr << "Error:nothing in queue,top failed!" << endl;
return (Elem)0;
}
return arrayQueue[front];
}
bool Front(Elem& value)
{
if(front == rear)
{
cerr << "Error:nothing in queue,top failed!" << endl;
return false;
}
value = arrayQueue[front];
return true;
}
bool Pop()
{
if(front == rear)
{
cerr << "Error:nothing in queue,pop failed!" << endl;
return false;
}
//代码精简
front = (front + 1) % size;
return true;
}
bool Empty()const
{
if(front == rear)
return true;
else
return false;
}
int Size()const
{
return (rear + size - front) % size;
}
bool Back(Elem& value)
{
if(front == rear)
{
cerr << "Error:nothing in queue,back failed!" << endl;
return false;
}
value = arrayQueue[rear - 1];
return true;
}
Elem Back()const
{
if(front == rear)
{
cerr << "Error:nothing in queue,back failed!" << endl;
return (Elem)0;
}
return arrayQueue[rear - 1];
}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -