头文件
const int MAX_QUEUE_NUM = 4;
class Queue
{
public:
Queue();
~Queue();
int pop();
void push(int x);
int getFront() const;
int count();
private:
int m_pos;//记录第一个元素的位置
int m_count;
int m_data[MAX_QUEUE_NUM];
};
cpp文件
#include "stdafx.h"
#include "queue.h"
int Queue::getFront()const
{
if(m_count<=0)
{
throw "queue is empty";
return -1;
}
else
{
return m_data[m_pos];
}
}
int Queue::pop()
{
if(m_count<=0)
{
throw "queue is empty";
return -1;
}
else
{
m_count--;
int tmp = m_data[m_pos];
m_pos = (m_pos+1)%MAX_QUEUE_NUM;
return tmp;
}
}
void Queue::push(int x)
{
if(m_count>=MAX_QUEUE_NUM)
{
throw "queue is full";
}
else
{
m_data[(m_pos+m_count)%MAX_QUEUE_NUM] = x;
m_count++;
}
}
Queue::Queue():m_count(0),m_pos(0)
{
}
Queue::~Queue()
{
}
int Queue::count()
{
return m_count;
}