队列

队列(先进先出)

队列就跟排队一样


具体实现

具体方法:

1. 入队(新数组在旧数组的基础上加元素然后替换旧数组)
2. 出队(需要取出第一个并且返回 其余的错位传给新数据 用新数组替换旧数组即可)
3. 判空(判断数组长度是否为空)

实现方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
public class MyQueue {
//底层用数组来存储数据
int[] elements;

public MyQueue(){
elements=new int[0];
}

//入队(和栈一样的代码思路)
public void add(int element){
//创建一个新的数组
int[] newArr =new int[elements.length+1];
//原始数组中的元素赋值到新的数组
for(int i=0;i<elements.length;i++){
newArr[i]=elements[i];
}
//将添加的元素加入到新数据
newArr[elements.length]=element; //放到最后!!!
//新数组替换旧数组
elements=newArr;
}

//出队(需要取出第一个并且返回 其余的错位传给新数据 用新数组替换旧数组即可)
public int poll(){
//取出来第一个元素
int element=elements[0];

//新建数组
int[] newArr=new int[elements.length-1];
//旧数组除了第一个数存到新的数组
for(int i=0;i<newArr.length;i++){
newArr[i]=elements[i+1]; //从第二个开始错位传给新的参数
}
//替换数组
elements=newArr;
//返回队列第一个元素
return element;
}

//判断栈是否为空(只需要返回布尔值是不是为空)
public boolean isEmpty(){
return elements.length==0;
}

}

测试Test类

1
2
3
4
5
6
7
8
9
10
11
12
public class Test {
public static void main(String[] args){
//创建一个队列
MyQueue m=new MyQueue();
m.add(9);
m.add(8);
m.add(7); // 从前往后: 9 8 7

System.out.println(m.poll()); //第一个为9
System.out.println(m.poll()); //第二个为8 因为9已经被踢出去了
}
}

具体结果:


数组模拟队列

思路

1. 阿斯达请问
2. 阿斯达阿斯达    

代码实现

1
2



×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. 队列(先进先出)
  2. 2. 具体实现
    1. 2.1. 实现方法
    2. 2.2. 测试Test类
  3. 3. 数组模拟队列
    1. 3.1. 思路
    2. 3.2. 代码实现
,