队列的java实现

本文介绍了一种使用数组实现队列数据结构的方法,并提供了一个Java类实现示例,包括基本操作如添加、移除和检查队列状态等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

和栈相反,队列是一种先进后出的数据结构

这里还是采用最简单的数组来实现和前面栈的实现比较类似,只是这里用了两个指针:

下面贴出代码:

package aa;

public class Queue {
	private Object[] data=null;
	private int maxSize;//队列的大小
	private int front;//队头
	private int rear;//队尾
	public Queue(int maxSize) {
		super();
		this.maxSize = maxSize;
		data=new Object[maxSize];
		front=rear=0;
	}
	//判断队列是否为空
	public boolean isEmpty(){
		return rear==front?true:false;
	}
	//插入元素
	public boolean add(Object object){
		if(rear==maxSize){
			throw new RuntimeException("队列已满,无法插入元素!");
		}
		else{
			data[rear++]=object;
			return true;
		}
	}
	//出队
	public Object poll(){
		if(isEmpty()){
			throw new RuntimeException("队列为空!");
		}
		else{
			return data[front++];
		}
	}
	//返回队首元素
	public Object peek(){
		if(isEmpty()){
			throw new RuntimeException("队列为空!");
		}
		else{
			return data[front];
		}
		
	}
	//返回队尾元素
	public Object end(){
		if(isEmpty()){
			throw new RuntimeException("队列为空!");
		}
		else{
			return data[rear-1];
		}
		
	}
	//获取队列的长度
	public int length(){
		return rear;
	}
	public static void main(String[] args){
		Queue q=new Queue(10);
		q.add(1);
		q.add(2);
		q.add("pg");
		q.add("sf");
		q.add("pf");
		q.add("sg");
		q.add("c");
		/*System.out.println(q.length());*/
		for(int i=0;i<q.length();i++){
			System.out.println(q.poll());
		}
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值