以下文章提供了循环队列 Java 的概述。循环队列是一种线性数据结构,与简单队列一样以 FIFO(先进先出)方式执行操作。在循环队列中,最后一个位置与第一个位置相连,形成一个循环。它也称为环形缓冲区。在简单的队列结构中,如果尾部到达队列末尾,即队列已满,则有可能开头元素的空间为空而无法利用。循环队列解决了队列的这种限制。在本主题中,我们将学习 Java 循环队列。
开始您的免费软件开发课程
网络开发、编程语言、软件测试及其他
语法:
下面给出了在Java程序中使用循环队列的基本语法:
让我们详细了解循环队列的创建和工作原理:
在循环队列上执行的基本操作如下:
下面给出了在循环队列中创建、插入或删除元素时遵循的步骤:
在循环队列中工作时需要牢记以下场景:
下面给出了循环队列在Java程序中的实现示例:
public class CirQueue { // Defining the size of Circular Queue int SIZE = 5; int front, rear; int queue[] = new int[SIZE]; //creating the constructor of the above class CirQueue() { front = -1; rear = -1; } // Implementing the 2 scenarios to check if the queue is full or not boolean isFullQueue() { if (front == 0 && rear == SIZE - 1) { return true; } if (front == rear + 1) { return true; } return false; } // Check if the queue is empty or not boolean isEmptyQueue() { if (front == -1) return true; else return false; } // Adding an element in the queue void enQueue(int value) { if (isFullQueue()) { System.out.println("Sorry !! Queue is full.. No more elements could be inserted in it"); } else { // if there is no element in the queue if (front == -1) front = 0; // incrementing the rear position in circular manner using modulo operator rear = (rear + 1) % SIZE; //placing the value at the rear position queue[rear] = value; System.out.println("Element " + value + " is inserted successfully"); } } // Deleting the element from the queue void deQueue() { int value; // checking of the queue is empty or not if (isEmptyQueue()) { System.out.println("Sorry !!The Queue is empty.. "); } else { value = queue[front]; // if there is only one element in the queue if (front == rear) { front = -1; rear = -1; } else { // Incrementing the front in a circular manner front = (front + 1) % SIZE; } } } // Displaying the elements of the Circular queue void displayQueue() { int i; if (isEmptyQueue()) { System.out.println("Sorry!! The Queue is Empty"); } else { System.out.println("Position of Front: " + front); System.out.println("Below given are the elements of the Queue"); for (i = front; i != rear; i = (i + 1) % SIZE) System.out.print(queue[i] + " "); System.out.println(queue[i]); System.out.println("Position of Rear: " + rear); } } // Main function to drive the code public static void main(String[] args) { // creating the object of the class to call the methods CirQueue que = new CirQueue(); // Queue is empty. No element is inserted as of now que.deQueue(); que.enQueue(10); que.enQueue(24); que.enQueue(33); que.enQueue(67); que.enQueue(22); que.displayQueue(); que.deQueue(); que.displayQueue(); que.enQueue(900); que.displayQueue(); // Element cannot be inserted as the queue is full que.enQueue(867); que.deQueue(); que.displayQueue(); } }
输出:
下面给出的是循环队列上各种插入和删除后的输出截图:
上面的描述清楚地解释了循环队列是什么以及它在任何编程语言中如何工作。循环队列是为了解决普通队列的局限性而引入的。在开始工作之前,程序员首先了解队列及其在实际程序中的实现非常重要。
以上是Java循环队列的详细内容。更多信息请关注PHP中文网其他相关文章!