代码
#include "stdafx.h"
#include<iostream>
using namespace std;
#define NUM 5
class ArrayQuene
{
public:
ArrayQuene(int N);
~ArrayQuene();
void push(int N);
int pop();
int peek();
private:
int *array;
int end;
int start;
int size;
int length;
};
ArrayQuene::ArrayQuene(int N)
{
array = new int[N];
end = 0;
start = 0;
size = 0;
length = N;
}
ArrayQuene::~ArrayQuene()
{
delete[]array;
}
void ArrayQuene::push(int element)
{
if (size == length)
cout << " the quene is full" << endl;
else
size++;
array[end] = element;
end = end == length - 1 ? 0 : end + 1;
}
int ArrayQuene::pop()
{
if (size == 0)
cout << " the quene is empty " << endl;
else
size--;
int temp = start;
start = start == length - 1 ? 0 : start + 1;
return array[temp];
}
int ArrayQuene::peek()
{
if (size == 0)
return -1;
else
return array[start];
}
int main()
{
ArrayQuene Quene(NUM);
Quene.push(1);
Quene.push(2);
Quene.push(3);
Quene.push(4);
Quene.push(15);
for (int i = 0; i < NUM; i++)
{
cout << "pop = " << Quene.pop() << endl;
cout << "peek = " << Quene.peek() << endl;
cout << endl;
}
return 0;
}