Java 数据结构与算法系列精讲之队列

网友投稿 293 2022-08-27


Java 数据结构与算法系列精讲之队列

目录概述队列队列实现enqueue方法dequeue方法main完整代码

概述

从今天开始, 小白我将带大家开启 Jave 数据结构 & 算法的新篇章.

队列

队列 (Queue) 遵循先进先出的原则 (First-In-First-Out). 举个例子, 早上我们排队买早餐的时候, 先排的人先买后排的人后买.

队列只能在队首进行删除操作, 在队尾进行插入操作.

队列实现

enqueue 方法

// 入队

public void enqueue(E element) {

array.add(array.size(), element);

}

dequeue 方法

// 出队

public E dequeue() {

E element = array.get(0);

array.remove(0);

return element;

}

main

public static void main(String[] args) {

// 创建队列

Queue queue = new Queue<>();

// 存入5个元素

for (int i = 0; i < 5; i++) {

queue.enqueue(i);

System.out.println(queue);

}

// 取出5个元素

for (int i = 0; i < 5; i++) {

queue.dequeue();

System.out.println(queue);

}

}

输出结果:

Queue{array=[0]}

Queue{array=[0, 1]}

Queue{array=[0, 1, 2]}

Queue{array=[0, 1, 2, 3]}

Queue{array=[0, 1, 2, 3, 4]}

Queue{array=[1, 2, 3, 4]}

Queue{array=[2, 3, 4]}

Queue{array=[3, 4]}

Queue{array=[4]}

Queue{array=[]}

完整代码

import java.util.ArrayList;

public class Queue {

private ArrayList array;

// 无参构造

public Queue() {

array = new ArrayList<>(10);

}

// 有参构造

public Queue(int capacity) {

array = new ArrayList<>(capacity);

}

// 入队

public void enqueue(E element) {

array.add(array.size(), element);

}

// 出队

public E dequeue() {

E element = array.get(0);

array.remove(0);

return element;

}

// 队列是否为空

public boolean isEmpty() {

return array.isEmpty();

}

// 队列长度

public int getSize() {

return array.size();

}

// toString

@Override

public String toString() {

return "Queue{" +

"array=" + array +

'}';

}

public static void mainhttp://(String[] args) {

// 创建队列

Queue queue = new Queue<>();

// 存入5个元素

for (int i = 0; i < 5; i++) {

queue.enqueue(i);

http:// System.out.println(queue);

}

// 取出5个元素

for (int i = 0; i < 5; i++) {

queue.dequeue();

Systehttp://m.out.println(queue);

}

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【Python】正则表达式(python正则表达式替换字符串)
下一篇:【Python】super关键字用法(Python super()使用注意事项)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~