软件编程
位置:首页>> 软件编程>> java编程>> Java 数据结构与算法系列精讲之队列

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

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

标签:Java,队列,数据结构

概述

从今天开始, 小白我将带大家开启 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

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com