数组实现队列
/** * @author:liuxincheng * @description: * @date:created in 2019/1/22 13:49 * @modified by liuxincheng */ public class ArrayQueue<T> { /** * 队列数组 */ private T[] queue; /** * 头下标 */ private int head; /** * 尾下标 */ private int tail; /** * 元素个数 */ private int count; public ArrayQueue() { queue = (T[]) new Object[10]; // 头下标为零 this.head = 0; this.tail = 0; this.count = 0; } public ArrayQueue(int size) { queue = (T[]) new Object[size]; this.head = 0; this.tail = 0; this.count = 0; } /** * 入队 * * @param t * @author: liuxincheng * @date: 2019/1/22 13:53 * @return: boolean */ public boolean inQueue(T t) { if (count == queue.length) { return false; } // 如果不为空就放入下一个 queue[tail++ % (queue.length)] = t; count++; return true; } /** * 出队 * * @param * @author: liuxincheng * @date: 2019/1/22 13:54 * @return: T */ public T outQueue() { // 如果是空的那就不能再出栈了 if (count == 0) { return null; } count--; return queue[head++ % (queue.length)]; } /** * 查队列 * * @param * @author: liuxincheng * @date: 2019/1/22 13:55 * @return: T */ public T showHead() { if (count == 0) { return null; } return queue[head]; } /** * 判满 * * @param * @author: liuxincheng * @date: 2019/1/22 13:56 * @return: boolean */ public boolean isFull() { return count == queue.length; } /** * 判空 * * @param * @author: liuxincheng * @date: 2019/1/22 13:56 * @return: boolean */ public boolean isEmpty() { return count == 0; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2018-01-22 JDK1.8在LINUX下安装步骤
2018-01-22 ecplise部署gradle web项目
2018-01-22 MyEclipse 2016 CI修改web项目context-root
2018-01-22 eclispe创建gradle项目
2018-01-22 Spring事务核心接口