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) {
	//自行实现
	
}}
相关推荐
镜花水月linyi4 分钟前
ConcurrentHashMap 深入解析:从0到1彻底掌握(1.3万字)
java·后端
极客Bob5 分钟前
Java 集合操作完整清单(Java 8+ Stream API)
java
雨中飘荡的记忆6 分钟前
Javassist实战指南
java
q***d1739 分钟前
Kotlin在后台服务中的框架
android·开发语言·kotlin
Knight_AL13 分钟前
JWT 无状态认证深度解析:原理、优势
java·jwt
周杰伦fans16 分钟前
C# 中的 `Hashtable`
开发语言·c#
习习.y21 分钟前
关于python中的面向对象
开发语言·python
lingggggaaaa21 分钟前
免杀对抗——C2远控篇&PowerShell&有无文件落地&C#参数调用&绕AMSI&ETW&去混淆特征
c语言·开发语言·笔记·学习·安全·microsoft·c#
技术净胜22 分钟前
MATLAB 基因表达数据处理与可视化全流程案例
开发语言·matlab
友友马22 分钟前
『Qt』多元素控件
开发语言·qt