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

作者:我是小白呀 时间:2023-09-26 21:10:31 

概述

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

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

队列

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

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

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

队列实现

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<Integer> 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<E> {

private ArrayList<E> 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 main(String[] args) {
       // 创建队列
       Queue<Integer> 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);
       }
   }
}

来源:https://iamarookie.blog.csdn.net/article/details/121850989

标签:Java,队列,数据结构
0
投稿

猜你喜欢

  • Android开发中如何解决Fragment +Viewpager滑动页面重复加载的问题

    2023-12-24 20:21:25
  • Java实现的具有GUI的校园导航系统的完整代码

    2022-06-28 03:43:56
  • Android实现志愿者系统详细步骤与代码

    2022-01-08 22:41:42
  • 利用C#版OpenCV实现圆心求取实例代码

    2022-10-28 12:51:48
  • C#清除WebBrowser中Cookie缓存的方法

    2022-01-13 20:01:08
  • Android中EditText光标在4.0中的bug及解决方法

    2023-10-01 19:24:17
  • Java利用Jackson序列化实现数据脱敏详解

    2023-12-22 17:47:38
  • C# 对PDF文档加密、解密(基于Spire.Cloud.SDK for .NET)

    2021-11-23 05:37:26
  • IDEA导入外部项目报Error:java: 无效的目标发行版: 11的解决方法

    2021-08-25 03:02:27
  • SpringBoot2.x 参数校验问题小结

    2023-05-22 02:21:22
  • C#用RabbitMQ实现消息订阅与发布

    2022-09-05 16:23:40
  • SpringBoot中实现接收文件和对象

    2022-02-08 10:16:53
  • Android下的POS打印机调用的简单实现

    2022-03-29 08:57:35
  • SpringBoot中定位切点的两种常用方法

    2023-09-26 08:45:17
  • Android开发导入项目报错Ignoring InnerClasses attribute for an anonymous inner class的解决办法

    2023-05-16 13:02:45
  • Java的Spring框架中bean的继承与内部bean的注入

    2023-06-17 18:50:44
  • 基于Java实现一个简单的单词本Android App的实践

    2023-04-17 21:27:39
  • 判断一个整数是否是2的N次幂实现方法

    2022-12-25 00:55:10
  • 浅谈让@Value更方便的Spring自定义转换类

    2023-10-06 14:01:02
  • Unity Shader实现新手引导遮罩镂空效果

    2022-08-18 16:25:12
  • asp之家 软件编程 m.aspxhome.com