当前位置: 首页 > news >正文

队列OJ题——设计循环队列

文章目录

  • 一、题目链接
  • 二、解题思路
  • 三、解题代码

一、题目链接

设计循环队列
自我实现一个循环队列。

二、解题思路

在这里插入图片描述

三、解题代码

class MyCircularQueue {public int[] elem;public int usedSize;public int front;public int rear;public MyCircularQueue(int k) {elem = new int[k+1];}public boolean enQueue(int val) {//       入队列前需要先检查数组是否满,满先需扩容才能入队if(isFull()){
//            队列满,扩容return false;}elem[rear] = val;rear = (rear+1)%elem.length;usedSize++;return true;}public boolean deQueue() {//       出队列前需要先检查数组是否空,空就无法出队,直接return -1if(isEmpty()){return false;}int ret = elem[front];front = (front+1)%elem.length;usedSize--;return true;}public int Front() {if(isEmpty()){return -1;}return elem[front];}public int Rear() {if(isEmpty()){return -1;}
//        因为rear-1是最后一个元素的下标,因此直接 return elem[rear - 1]即可获取最后一个元素。
//       但是,有一个特殊情况,那就是 ——> 当rear指向 0下标时,此时最后一个元素的下标是1,那么rear-1 ——> 0-1,妥妥的不合法
//        因此使用 elem[elem.length - 1]对特殊情况单独处理!if(rear == 0){return elem[elem.length - 1];}return elem[rear - 1];}public boolean isEmpty() {if(rear == front){return true;}return false;}public boolean isFull() {if((rear+1)% elem.length == front){return true;}return false;}
}

http://www.mrgr.cn/news/26865.html

相关文章:

  • 如何使用ssm实现物流配送人员车辆调度管理系统的设计与实现+vue
  • Linux 生成 git ssh 公钥
  • VBA语言専攻T3学员领取资料通知0915
  • 特邀文章┆大学录取专业不理想,怎么办?
  • 升级Ubuntu内核的几种方法
  • 项目需求 | MySQL增量备份与恢复的完整操作指南
  • 鸿蒙 父页面调用子组件页面中的方法
  • 网络安全宣传周的时间,举办活动的方式和意义
  • 【C语言】(指针系列3)数组指针+函数指针+typedef+函数数组指针+转移表
  • java 多线程中 一些需要注意的知识点
  • 【第34章】Spring Cloud之SkyWalking分布式日志
  • W外链怎么做微信推广链接?
  • 【C++二分查找】2560. 打家劫舍 IV
  • 音视频直播应用场景探讨之RTMP推流还是GB28181接入?
  • Superset二次开发之服务器环境准备
  • HJ69 矩阵乘法
  • Transformer学习记录(6):Vision Transformer
  • DockerDocker Compose安装(离线+在线)
  • yolov8学习笔记
  • 视频监控平台中的视频处理核心技术揭秘:自动化监控与智能预警成为趋势?