java_队列

第一种使用的是java.util.Queue自带的队列库

第二种为循环队列,创建时必须确定该队列的大小,除了不可以扩容,其他基本上感觉都比自带的好,速度也快

java 复制代码
import java.util.Queue;
import java.util.LinkedList;
class util_queue{                //使用自带的Queue
	public Queue<Integer>queue=new LinkedList<>();
	public  boolean isEmpty() {
		return queue.isEmpty();
		
	}
	//向队尾加入数字
	public void offer(int num) {
		queue.offer(num);
	}
	//从头拿元素
	public int poll() {
		return queue.poll();
	}
	//拿头元素,但是不弹出
	public int peek() {
		return queue.peek();
	}
	public int size() {
		return queue.size();
	}
}
class Q{
	public int[] queue;
	int l=0,r=0;
	Q(int size){
		queue=new int[size+1];           //本身会浪费一个空间,用来判断是否为空数组或队满
	}
	public boolean isEmpty() {
		return l==r;
	}
	public boolean isFull() {
		return (r+1)%queue.length==l;
	}
	
	public boolean offer(int data) {
		if(this.isFull())return false;
		queue[r]=data;
		r=(r+1)%queue.length;
		return true;
	}
	public int poll() {
		if(this.isEmpty()) {
			return 0;
		}
		l=(l+1)%queue.length;
		return queue[(l-1+queue.length)%queue.length];
		
	}
	public int peek() {
		if(this.isEmpty())return 0;
		return queue[l];
	}
	public int size() {
		return r-l;
	}
}
public class queue {
	public static void main(String[] args) {
	//自行实现
	
}}
相关推荐
I_Am_Me_1 分钟前
【JavaEE进阶】 JavaScript
开发语言·javascript·ecmascript
yyt_cdeyyds1 分钟前
FIFO和LRU算法实现操作系统中主存管理
算法
重生之我是数学王子11 分钟前
QT基础 编码问题 定时器 事件 绘图事件 keyPressEvent QT5.12.3环境 C++实现
开发语言·c++·qt
xmh-sxh-131412 分钟前
jdk各个版本介绍
java
Ai 编码助手13 分钟前
使用php和Xunsearch提升音乐网站的歌曲搜索效果
开发语言·php
学习前端的小z17 分钟前
【前端】深入理解 JavaScript 逻辑运算符的优先级与短路求值机制
开发语言·前端·javascript
神仙别闹24 分钟前
基于C#和Sql Server 2008实现的(WinForm)订单生成系统
开发语言·c#
XINGTECODE25 分钟前
海盗王集成网关和商城服务端功能golang版
开发语言·后端·golang
alphaTao28 分钟前
LeetCode 每日一题 2024/11/18-2024/11/24
算法·leetcode
天天扭码31 分钟前
五天SpringCloud计划——DAY2之单体架构和微服务架构的选择和转换原则
java·spring cloud·微服务·架构