template <class T>
//#define MAXSIZE 512
class Queue{
private:
int front ;
int rear;
int count;
//此处只是声明,在类外定义
//规范:限制将一个 constant(常量)的作用范围限制在一个 class(类)内
static const int maxsize=126;
T queue[maxsize];
public :
Queue();
virtual ~Queue();
void Insert(const T & item);
T delete(void);
T front(void) const;
int length(void)const;
};
Queue::maxsize;
template<class T>
Queue<T>::Queue():front(0):rear(0):count(0){}
template<class T>
void Queue<T>::Insert(const T & item)
{
if(count>=maxsize)
{
return;
}
count++;
queue[rear]=item;
rear=(rear+1)%maxsize;
}
template<class T>
T Queue<T>::delete(void)
{
T temp=0;
if(count==0)
{
return 0;
}
count--;
temp=queue[front];
front=(front+1)%maxsize;
return temp;
}
template<class T>
T Queue<T>::front(void) const
{
T temp;
if(count==0)
{
return 0;
}
temp=queue[front];
return;
}
template<class T>
int Queue<T>::length(void)const
{
return count;
}