力扣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;
      }
  };
相关推荐
浅川.25几秒前
xtuoj 素数个数
数据结构·算法
jyyyx的算法博客14 分钟前
LeetCode 面试题 16.18. 模式匹配
算法·leetcode
uuuuuuu24 分钟前
数组中的排序问题
算法
Stream28 分钟前
加密与签名技术之密钥派生与密码学随机数
后端·算法
Stream30 分钟前
加密与签名技术之哈希算法
后端·算法
少许极端1 小时前
算法奇妙屋(十五)-BFS解决边权为1的最短路径问题
数据结构·算法·bfs·宽度优先·队列·图解算法·边权为1的最短路径问题
机械电气电机杂谈1 小时前
电机热电偶原理与应用
职场和发展·创业创新·制造·学习方法·业界资讯
gcfer1 小时前
面试/找工作 实录
面试·职场和发展
c骑着乌龟追兔子1 小时前
Day 27 常见的降维算法
人工智能·算法·机器学习
hetao17338371 小时前
2025-12-02~03 hetao1733837的刷题记录
c++·算法