声明:图片及内容基于https://www.bilibili.com/video/av94331942
原理分析 数据结构FIFO:先进先出
front指向头元素的前一个位置
rear指向最后一个元素
如果用rear=front来判断队列为空还是满,会出现歧义,其实无法判断
此时,若再插入一个元素,则rear=front。
为了解决这个问题,本问采取留出一个空间不用的策略。及队列容量始终比开辟空间少一。
基本数据类型class CirQueue { private: T* data; int front; int rear; int mSize; public: CirQueue(); CirQueue(int size); ~CirQueue(); bool enQueue(T item); //入队 bool deQueue(T &item); //出队 bool getFront(T& item);//获得队头 bool isEmpty(); bool isFull(); void clearQueue(); void displayQueue(); int queueLength(); //获得队列长度 class Out_of_range{}; //异常类 class Empty{}; //异常类 };