ArrayQueue.h
/****************************************************************************
*program: to come true ArrayQueue
*autor: kingduo
*date: 2015/4/21 First Realse
******************************************************************************/
#ifndef ARRAYQUEUE_H
#define ARRAYQUEUE_H
class ArrayQueue
{
public:
ArrayQueue(int size);
~ArrayQueue();
void EnQueue(double value);
double DeQueue();
void Print();
void Clear();
private:
int front;
int back;
int size;
int count;
double *my_value;
};
#endif</span>
ArrayQueue.cpp:
#include <iostream>
#include "ArrayQueue.h"
using namespace std;
ArrayQueue::ArrayQueue(int size = 10)
{
this->size = size;
front = 0;
back = -1;
count = 0;
my_value = new double[size];
}
ArrayQueue::~ArrayQueue()
{
delete[] my_value;
}
void ArrayQueue::EnQueue(double value)
{
if(count >= size)
cout<<"The queue is full! Can't to enqueue."<<endl;
else
{
back = (back + 1) % size;
my_value[back] = value;
++count;
}
}
double ArrayQueue::DeQueue()
{
double value = 0.0;
if(count <= 0)
cout<<"The queue is empty! Can't to dequeue."<<endl;
else
{
value = my_value[front];
front = (front + 1) % size;
--count;
}
return value;
}
void ArrayQueue::Print()
{
int i = front;
while(i != back)
{
cout<<my_value[i]<<"\t";
i = (i + 1) % size;
}
cout<<my_value[i]<<endl;
}
void ArrayQueue::Clear()
{
front = 0;
back = -1;
count = 0;
cout<<"The queue is clear."<<endl;
}