以下文章提供了循環佇列 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中文網其他相關文章!