本文主要是介绍严蔚敏 《数据结构》第三章栈和队列 3.4节循环队列——队列的顺序表示和实现 C++实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
严蔚敏 《数据结构》第三章栈和队列 3.4节循环队列——队列的顺序表示和实现 C++实现
// sq_queue.h
// 循环队列
// by Envirian
#ifndef SQ_QUEUE_H_
#define SQ_QUEUE_H_
#include <bits/stdc++.h>
using namespace std;
// 怠惰ing
using QElemType = int;class SqQueueClass {
private:const int kMAXQSIZE = 100;private:// front_==rear_表示队列为空,rear_的下一个元素为head_表示队列满了// 用取余运算来实现循环vector<QElemType> queue_;int front_;int rear_;public:SqQueueClass(): queue_{vector<QElemType>(kMAXQSIZE)}, front_{0}, rear_{0} {}int QueueLength(){return (rear_ - front_ + kMAXQSIZE) % kMAXQSIZE;}bool EnQueue(const QElemType& e){if ((rear_ + 1) % kMAXQSIZE == front_)// 队列满了return false;queue_[rear_] = e;rear_ = (rear_ + 1) % kMAXQSIZE;return true;}bool DeQueue(QElemType& e){if (front_ == rear_)// 队列为空return false;e = queue_[front_];front_ = (front_ + 1) % kMAXQSIZE;return true;}
};#endif
这篇关于严蔚敏 《数据结构》第三章栈和队列 3.4节循环队列——队列的顺序表示和实现 C++实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!