【Qenen】数组队列

文章详细描述了一个使用数组模拟队列的CircleArrayQueue类,包括队列的构造、满/空判断、添加和获取数据的方法,以及测试类。同时提到了Java工程师的学习资源和面试准备相关内容。
摘要由CSDN通过智能技术生成

队列本身是有序队列,若使用数组的结构来存储队列的数据,有一下声明。

maxSize数组的最大长度。为用户定义。

front 队列的头,初始化为0。

rear 队列的尾,初始化为0. 即rear所在的位置是没有元素的。

很明显当front=rear时,队列中是没有元素的。

我们假定预留一个位置。即存储的最大个数为maxSize-1. 即当front指向0,rear指向maxSize-1时(注意下标从0开始),队列满了,由此可见队列为满的条件为**(rear+1)%maxSize = front % maxSize**

CilecreArrayQenen 类

package ArrayQueue;

import java.util.Arrays;

//使用数组模拟队列,编写一个ArrayQueue类

public class CircleArrayQueue {

private final int maxSize;

private int front;

private int rear;

private int[] arr;

//创建队列的构造器

public CircleArrayQueue(int size){

maxSize = size;

arr = new int[maxSize];

front = 0;

rear = 0;

}

//判断队列是否为满

public boolean isFull(){

return (rear+1)% maxSize == front % maxSize;

}

//判断队列是否为空

public boolean isEmpty() {

return front == rear;

}

//添加数据到队列

public void addQueue(int n){

if (isFull()){

System.out.println(“队列已满”);

return;

}

arr[rear] = n ;

rear=(rear+1)%maxSize;

}

//获取队列的数据,出队列

public int getQueue(){

if (isEmpty()){

throw new RuntimeException(“队列中没有元素”);

}

int p = arr[front];

arr[front] = 0;

front=(front+1)%maxSize;

return p;

}

//显示队列的所有数据

public void showQueue(){

if (isEmpty()){

System.out.println(“队列为空”);

return;

}

System.out.println(Arrays.toString(arr));

}

//显示队列的头数据,注意不是取出数据

public void showHeadData(){

if (isEmpty()){

System.out.println(“队列为空”);

return;

}

System.out.println(arr[front]);

}

//

}

测试类

package ArrayQueue;

import java.util.Scanner;

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

image

image

其实面试这一块早在第一个说的25大面试专题就全都有的。以上提及的这些全部的面试+学习的各种笔记资料,我这差不多来回搞了三个多月,收集整理真的很不容易,其中还有很多自己的一些知识总结。正是因为很麻烦,所以对以上这些学习复习资料感兴趣
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
以上提及的这些全部的面试+学习的各种笔记资料,我这差不多来回搞了三个多月,收集整理真的很不容易,其中还有很多自己的一些知识总结。正是因为很麻烦,所以对以上这些学习复习资料感兴趣
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值