04010.cpp
来自「用C++编写的《算法与程序设计》(王晓东版)的书中的数据结构类(全集)」· C++ 代码 · 共 72 行
CPP
72 行
template <class T>
class Queue{
public:
Queue() {int Max=100;}
~Queue(){delete[] queue;}
bool Empty() const{return front==rear;}
bool Full() const
{ return (((rear+1)%MaxSize==front)?1:0);}
T First() const;
T Last() const;
Queue<T> & EnQueue(const T& x);
Queue<T> & DeQueue(T& x);
void Type();
struct Node
{
T data;
Node *next;
};
private:
Node *front; //队首结点指针
Node *rear; //队尾结点指针
int LastOp;
};
template<class T>
Queue<T>::Queue(int Max)
{
MaxSize=Max+1;
queue=new T[MaxSize];
front=rear=0;
}
template<class T>
T Queue<T>::First() const
{
if(Empty()) cout<<"it is wrong";
return queue[(front+1)%MaxSize];
}
template<class T>
T Queue<T>::Last() const
{
if(Empty()) out<<"it is wrong";
return queue[rear];
}
template<class T>
Queue<T> & Queue<T>::EnQueue(const T& x)
{
if(Full()) out<<"it is wrong";
rear=(rear+1)%MaxSize;
queue[rear]=x;
LastOp=1;
return *this;
}
template<class T>
Queue<T> & Queue<T>::DeQueue(T& x)
{
if(Empty()) cout<<"it is wrong";
front=(front+1)%MaxSize;
x=queue[front];
LastOp=0;
return *this;
}
template<class T>
void Queue<T>::Type()
{
if(LastOp=1) out<<"it is Full";
if(LastOp=0) out<<"it is Empty";
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?