📄 seqqueue.h
字号:
#include "queue.h"
#include <iostream.h>
template <class T>
class SeqQueue:public Queue<T>
{
public:
SeqQueue(int MaxQueSize);
~SeqQueue(){ delete [] q; };
bool IsEmpty() const;
bool IsFull() const;
bool Front(T& x) const;
bool EnQueue(T x);
bool DeQueue();
private:
int front,rear;
int MaxSize;
T *q;
};
template <class T>
SeqQueue<T>::SeqQueue(int MaxQueSize)
{
MaxSize=MaxQueSize;
q=new T[MaxSize];
front=rear=0;
}
template <class T>
bool SeqQueue<T>::IsEmpty() const
{
return front==rear;
}
template <class T>
bool SeqQueue<T>::IsFull() const
{
return (rear+1) % MaxSize==front; /* Book ying p115*/
}
template <class T>
bool SeqQueue<T>::Front(T& x) const
{
if (IsEmpty())
{
cout<<"empty"<<endl;
return false;
}
x=q[(front+1) % MaxSize];
return true;
}
template <class T>
bool SeqQueue<T>::EnQueue(T x)
{
if (IsFull())
{
cout<<"Full"<<endl;
return false;
}
q[(rear=(rear+1) % MaxSize)]=x;
return true;
}
template <class T>
bool SeqQueue<T>::DeQueue()
{
if (IsEmpty())
{
cout<<"Underflow"<<endl;
return false;
}
front=(front+1) % MaxSize;
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -