实验代码:
#include<iostream>
using namespace std;
const int max = 10;
class CirQueue {
int head, rear;
int data[max];
public:
CirQueue() { head = rear = max - 1; }
void enqueue(int);
void dequeue();
};
void CirQueue::enqueue(int x) {
if ((rear + 1) % max == head)throw"overflow";
rear = (rear + 1) % max;
data[rear] = x;
}
void CirQueue::dequeue() {
if (rear == head)throw"overflow";
head = (head + 1) % max;
while (head != rear + 1) {
cout << data[head++];
}cout << endl;
}
void main() {
CirQueue p;
p.enqueue(1); p.enqueue(3); p.enqueue(2); p.enqueue(5); p.enqueue(4);
p.dequeue();
}
实验结果: