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 + -
显示快捷键?