力扣622.设计循环队列

力扣622.设计循环队列

    • 通过数组索引构建一个虚拟的首尾相连的环
    • 当front = rear时 队列为空
    • 当front = rear + 1时 队列为满 (最后一位不存)
cpp 复制代码
  class MyCircularQueue {
      int front;
      int rear;
      int capacity;
      vector<int> elements;
  public:
      MyCircularQueue(int k) {
          //最后一位不存元素 多开一个
          capacity = k+1;
          elements = vector<int>(capacity);
          rear = front = 0;
      }
      
      bool enQueue(int value) {
          if(isFull())
              return false;
          elements[rear] = value;
          rear = (rear + 1) % capacity;
          return true;
      }
      
      bool deQueue() {
          if(isEmpty())
              return false;
          front = (front + 1) % capacity;
          return true;
      }
      
      int Front() {
          if(isEmpty())
              return -1;
          return elements[front];
      }
      
      int Rear() {
          if(isEmpty())
              return -1;
          return elements[(rear - 1 + capacity) % capacity];
      }
      
      bool isEmpty() {
          return rear == front;
      }
      
      bool isFull() {
          return ((rear + 1) % capacity) == front;
      }
  };
相关推荐
凭君语未可2 分钟前
详解贪心算法
算法·贪心算法
NeVeRMoRE_20248 分钟前
【数据结构和算法实践-树-LeetCode110-平衡二叉树】
数据结构·b树·算法·leetcode
夜清寒风18 分钟前
opencv学习:calcHist 函数绘制图像直方图及代码实现
人工智能·opencv·学习·算法·计算机视觉
Miss Stone22 分钟前
对数器验证小和算法是否正确
算法
闲人编程38 分钟前
Python实现优化的分水岭算法
python·算法·计算机视觉·优化·分水岭
一只邪恶大泡1 小时前
力扣14.最长公共前缀
数据结构·算法·leetcode
糖炒栗子要加糖1 小时前
论文阅读《Robust Steganography for High Quality Images》高质量因子图片的鲁棒隐写
图像处理·算法·安全
欧尼戏精少女1 小时前
张雪峰推荐的PMP证书考了,哭死
职场和发展·求职招聘
Java Fans2 小时前
Java 算法:随机抽题
java·python·算法