aqueue.h
来自「经典c++程序的实现」· C头文件 代码 · 共 33 行
H
33 行
class Queue { // Array based queue class
private:
int size; // Maximum size of queue
int front; // Index prior to front item
int rear; // Index of rear item
ELEM *listarray; // Array holding the list ELEM's
public:
Queue(const int sz =LIST_SIZE) // Constructor
{ // Make list array one position larger for empty slot
size = sz+1; front = rear = 0; listarray = new ELEM[size]; }
~Queue() { delete [] listarray; } // Destructor
void clear() { front = rear; } // Clear queue
void enqueue(const ELEM&); // Enqueue ELEM at rear
ELEM dequeue(); // Dequeue ELEM from front
ELEM firstValue() const // Get value of front ELEM
{ assert(!isEmpty()); return listarray[(front+1) % size]; }
bool isEmpty() const // TRUE if queue is empty
{ return front == rear; }
};
// Enqueue ELEM at rear of queue
void Queue::enqueue(const ELEM& item) {
assert(((rear+1) % size) != front); // Queue must not be full
rear = (rear+1) % size; // Increment rear (in circle)
listarray[rear] = item;
}
ELEM Queue::dequeue() { // Dequeue ELEM from front of queue
assert(!isEmpty()); // There must be something to dequeue
front = (front+1) % size; // Increment front
return listarray[front]; // Return value
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?