⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queue.h

📁 一本全面剖析C++数据结构算法的书籍
💻 H
字号:
// file queue.h// formual based queue#ifndef Queue_#define Queue_#include <stdlib.h>#include <iostream.h>#include "xcept.h"template<class T>class Queue {// FIFO objects   public:      Queue(int MaxQueueSize = 10);      ~Queue() {delete [] queue;}      bool IsEmpty() const {return front == rear;}      bool IsFull() const {return (           ((rear + 1) % MaxSize == front) ? 1 : 0);}      T First() const; // return front element      T Last() const; // return last element      Queue<T>& Add(const T& x);      Queue<T>& Delete(T& x);   private:      int front;   // one counterclockwise from first      int rear;    // last element      int MaxSize; // size of array queue      T *queue;    // element array};template<class T>Queue<T>::Queue(int MaxQueueSize){// Create an empty queue whose capacity // is MaxQueueSize.   MaxSize = MaxQueueSize + 1;   queue = new T[MaxSize];   front = rear = 0;}template<class T>T Queue<T>::First() const{// Return first element of queue.  Throw // OutOfBounds exception if the queue is empty.   if (IsEmpty()) throw OutOfBounds();   return queue[(front + 1) % MaxSize];}template<class T>T Queue<T>::Last() const{// Return last element of queue.  Throw // OutOfBounds exception if the queue is empty.   if (IsEmpty()) throw OutOfBounds();   return queue[rear];}template<class T>Queue<T>& Queue<T>::Add(const T& x){// Add x to the rear of the queue.  Throw // NoMem exception if the queue is full.   if (IsFull()) throw NoMem();   rear = (rear + 1) % MaxSize;   queue[rear] = x;   return *this;}template<class T>Queue<T>& Queue<T>::Delete(T& x){// Delete first element and put in x.  Throw // OutOfBounds exception if the queue is empty.   if (IsEmpty()) throw OutOfBounds();   front = (front + 1) % MaxSize;   x = queue[front];   return *this;}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -