Java代码实现循环队列的示例代码

下面是Java代码实现循环队列的完整攻略。

理解循环队列的概念

循环队列是一种常用的队列数据结构,与普通队列的区别在于,当队列的队尾到达队列的最后一个位置时,再插入一个元素时,队尾会从队列的开头重新开始(即环状)。这样既可以节省空间,又可以提高存取效率。

代码实现

定义循环队列类

首先,我们需要定义一个循环队列类。代码如下:

public class CircularQueue {

    private int[] queue; // 队列数组
    private int front; // 队头指针
    private int rear; // 队尾指针
    private int size; // 队列大小

    // 创建循环队列
    CircularQueue(int capacity) {
        queue = new int[capacity];
        front = 0;
        rear = 0;
        size = 0;
    }

    // 入队
    public void enqueue(int data) {
        if (isFull()) {
            throw new RuntimeException("队列已满");
        }
        queue[rear] = data;
        rear = (rear + 1) % queue.length;
        size++;
    }

    // 出队
    public int dequeue() {
        if (isEmpty()) {
            throw new RuntimeException("队列为空");
        }
        int data = queue[front];
        front = (front + 1) % queue.length;
        size--;
        return data;
    }

    // 判断队列是否已满
    private boolean isFull() {
        return (rear + 1) % queue.length == front;
    }

    // 判断队列是否为空
    public boolean isEmpty() {
        return front == rear;
    }

}

在定义类时,我们定义了4个成员变量:

  • 队列数组 queue,用于存放队列元素。
  • 队头指针 front,指向队头元素。
  • 队尾指针 rear,指向队尾元素。
  • 队列大小 size,记录队列中元素的数量。

类中有两个构造方法:默认构造方法和指定大小的构造方法。我们可以通过调用构造方法来创建循环队列对象。

在类中定义了 enqueuedequeue 两个方法,分别用于入队和出队操作。入队操作会将元素加入到队列中。当队列已满时,会抛出异常。出队操作会从队列中移除一个元素,并返回队头元素的值。当队列为空时,会抛出异常。

最后,我们在类中定义了两个私有方法 isFullisEmpty,用于判断队列是否已满和是否为空。

示例说明1:循环队列入队操作

下面通过一个示例来说明循环队列的入队操作。

CircularQueue queue = new CircularQueue(5);
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
queue.enqueue(4);
queue.enqueue(5);

在这个示例中,我们创建了一个队列对象,指定了队列的大小为5。然后对该队列进行入队操作,依次插入值为1、2、3、4、5的元素。当插入第5个元素时,队列已满,无法再插入元素,抛出异常。

示例说明2:循环队列出队操作

下面通过一个示例来说明循环队列的出队操作。

CircularQueue queue = new CircularQueue(5);
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
queue.enqueue(4);
queue.enqueue(5);
queue.dequeue();
queue.dequeue();

在这个示例中,我们创建了一个队列对象,并插入值为1、2、3、4、5的元素。然后对该队列进行出队操作,依次移除队头元素。当移除前两个元素时,队列中还有3个元素。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java代码实现循环队列的示例代码 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • 什么是同步?

    以下是关于同步的完整使用攻略: 什么是同步? 同步是指多个线程之间按照一定的顺序执行,以避免出现数据竞争和不一致的情况。在多线程编程中,同步是非常重要的,因为多个线程同时访问共享资源时,可能会导致数据的不一致性和程序的错误。 同步的实现方式 同步可以通过以下几种方式来实现: synchronized关键字:synchronized关键字可以用来修饰方法或代码…

    Java 2023年5月12日
    00
  • SpringMVC如何在生产环境禁用Swagger的方法

    如果您的Spring MVC项目使用了Swagger来生成文档并进行接口测试,在生产环境下禁用Swagger是一个不错的选择。本文将详细讲解如何在生产环境中禁用Swagger。 方法一:使用Profile 首先,创建一个新的profile,在该profile中配置Swagger禁用。在application.yml文件中添加以下配置,该配置将Swagger在…

    Java 2023年5月19日
    00
  • Java Swing实现扫雷小游戏

    Java Swing是Java的一个GUI(图形用户界面)框架,可以用来轻松实现各种交互式应用程序。本文将介绍如何使用Java Swing实现扫雷小游戏,并提供两个示例说明。 准备工作 要使用Java Swing来实现扫雷游戏,需要具备以下几项准备工作: Java开发环境(JDK)的安装和配置。 熟悉Java语言编程基础知识和面向对象编程思想。 熟悉Java…

    Java 2023年5月19日
    00
  • cookie+mybatis+servlet实现免登录时长两天半的整体流程

    首先,我们需要了解cookie,MyBatis和Servlet的基本知识。Cookie是存储在客户端的小型文本文件,用于在客户端和服务器之间传递信息。MyBatis是一种ORM框架,用于将Java对象映射到数据库表。Servlet是Java编写Web应用程序的技术。 实现免登录时长两天半的整体流程如下: 用户访问您的网站,并输入用户名和密码。 在服务器端,检…

    Java 2023年6月15日
    00
  • java 将一个数组逆序输出的方法

    下面是Java将一个数组逆序输出的方法的攻略: 使用for循环,逆序遍历数组并输出 这种方法使用一个for循环来逆序遍历数组,并使用System.out.println()方法将数组元素逐一输出。代码如下: int[] arr = {1, 2, 3, 4, 5}; for (int i = arr.length – 1; i >= 0; i–) { …

    Java 2023年5月26日
    00
  • java版十大排序经典算法:完整代码(4)

    下面是详细讲解 “java版十大排序经典算法:完整代码(4)” 的攻略。 1. 前言 “java版十大排序经典算法” 系列文章是介绍常见排序算法的一系列文章,本篇为第四篇,主要介绍了 希尔排序、归并排序、快速排序这三个经典算法的 Java 代码实现。 2. 希尔排序 希尔排序是基于插入排序的一种高效的排序算法,也称“缩小增量排序”。利用增量序列将数组分成多个…

    Java 2023年5月19日
    00
  • Java synchronized底层实现原理以及锁优化

    Java中的synchronized关键字用于保证同步访问,避免出现多线程并发访问共享资源的问题,保证程序的正确性和一致性。在JVM中,synchronized的实现原理是通过Java对象头中的一个有关锁的标识位来实现的,具体的底层实现原理如下: Java对象头 Java对象在堆中的数据结构是由对象头和实例数据两部分组成的,其中对象头占用了8个或者12个字节…

    Java 2023年5月26日
    00
  • java使用jdbc连接数据库工具类和jdbc连接mysql数据示例

    使用Java连接数据库一般都会使用Java Database Connectivity(JDBC)技术。JDBC 是一种Java提供的标准化的数据库操作接口,支持多种数据库,包括MySQL、Oracle、SQL Server等等。在Java中,使用JDBC编写程序连接数据库是比较常见的,接下来详细讲解一下如何使用 JDBC 连接 MySQL 数据库及其工具类…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部