📄 queue.h
字号:
//Queue.h
#include <iostream>
#include <exception>
using namespace std;
template <class T,int MAX_SIZE>
class Queue
{
public:
//构造函数:产生一个空队列
Queue():m_front(0),m_rear(0){}
//入队函数:将指定值入队
void Push(const T& value)
{
if (Full()) throw overflow_error("Queue::Push():队列已满");
m_data[m_rear++] = value;
m_rear %= (MAX_SIZE+1);
}
//出队函数
void Pop()
{
if (Empty()) throw underflow_error("Queue::Pop():队列空");
m_front=(m_front+1)%(MAX_SIZE+1);
}
//取队头
const T& Front() const
{
if (Empty()) throw underflow_error("Queue::Front():队列空");
return m_data[m_front];
}
//取队尾
const T& Back() const
{
if (Empty()) throw underflow_error("Queue::Back():队列空");
return m_data[(m_rear+MAX_SIZE)%(MAX_SIZE+1)];
}
//检验队列是否为空
bool Empty()const{return m_rear==m_front;}
//检验队列是否为满
bool Full()const{return (m_rear+1-m_front)%(MAX_SIZE+1)==0;}
//当前队列长度
int Size()const{return (m_rear-m_front+MAX_SIZE+1)%(MAX_SIZE+1);}
//销毁队列
void Destroy(){m_rear=m_front=0;}
private:
T m_data[MAX_SIZE+1];
int m_front;
int m_rear;
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -