亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
介紹
什麼是循環(huán)隊列?
管理循環(huán)隊列
範例
輸出
結(jié)論
首頁 後端開發(fā) C++ 如何在C++中管理完整的循環(huán)佇列事件?

如何在C++中管理完整的循環(huán)佇列事件?

Sep 04, 2023 pm 06:41 PM
事件處理 c語言程式設計 循環(huán)佇列管理

介紹

Circular Queue是對線性佇列的改進,它被引入來解決線性佇列中的記憶體浪費問題。循環(huán)佇列使用FIFO原則來插入和刪除其中的元素。在本教程中,我們將討論循環(huán)隊列的操作以及如何管理它。

什麼是循環(huán)隊列?

循環(huán)佇列是資料結(jié)構(gòu)中的另一個佇列,其前端和後端相互連接。它也被稱為循環(huán)緩衝區(qū)。它的操作與線性隊列類似,那麼為什麼我們需要在資料結(jié)構(gòu)中引入一個新的隊列呢?

使用線性佇列時,當佇列達到其最大限制時,尾指標之前可能會存在一些記憶體空間。這會導致記憶體損失,而良好的演算法應該能夠充分利用資源。

為了解決記憶體浪費的問題,開發(fā)人員引入了循環(huán)隊列的概念,其具有循環(huán)連結(jié)到後端和前端的能力,並且可以插入更多元素。

如何在C++中管理完整的循環(huán)佇列事件?

循環(huán)佇列的基本功能

  • ? 它傳回佇列的後值。

  • Front ? 它傳回佇列的前端值。

  • deQueue ? 這個內(nèi)建方法用來從佇列中移除元素,同時檢查佇列是否為空。

  • enQueue ? 此方法用於在檢查佇列大小時插入新元素。

在循環(huán)佇列中,元素從後端添加,從前端移除。 deQueue和enQueue是與佇列大小無關(guān)的函數(shù),並使用取模運算子進行實作。它們的時間複雜度為O(1)。

管理循環(huán)隊列

我們透過使用enQueue和deQueue操作來管理循環(huán)隊列。最初,循環(huán)隊列的front值為0,rear值為-1,循環(huán)隊列中的所有元素為NULL。

範例

C 程式碼,使用陣列實作循環(huán)隊列

#include <bits/stdc++.h>
using namespace std;
 
class Queue {
   //Initializing front and rear of the queue
   int rear, front;
   int sz;
   int* arr;
 
   public:
   Queue(int s) {
      front = rear = -1;
      sz = s;
      arr = new int[s];
   }
   
   void enQueue(int v);
   int deQueue();
   void displayQueue();
};
 
//Circular queue function
void Queue::enQueue(int v) {
   if ((front == 0 && rear == sz - 1)
      || (rear == (front - 1) % (sz - 1))) {
         printf("\nNo Space Queue is Full");
         return;
      }
   
      //Inserting the front element
      else if (front == -1) {
         front = rear = 0;
         arr[rear] = v;
      }
   
      else if (rear == sz - 1 && front != 0) {
         rear = 0;
         arr[rear] = v;
      }
   
      else {
         rear++;
         arr[rear] = v;
      }
}
 
//Function for deleting queue elements
int Queue::deQueue() {
   if (front == -1) {
      printf("\nQueue needs data it is empty");
      return INT_MIN;
   }
   
   int ele = arr[front];
   arr[front] = -1;
   if (front == rear) {
      front = -1;
      rear = -1;
   }
   else if (front == sz - 1)
      front = 0;
   else
      front++;
   return ele;
}
 
//Printing Circular queue elements
void Queue::displayQueue() {
   if (front == -1) {
      printf("\nQueue Empty");
      return;
   }
   printf("\nCircular Queue elements are: \n");
   if (rear >= front) {
      for (int i = front; i <= rear; i++)
      printf("%d ", arr[i]);
   } else {
      for (int i = front; i < sz; i++)
      printf("%d ", arr[i]);
   
      for (int i = 0; i <= rear; i++)
      printf("%d ", arr[i]);
   }
}
 
int main() {
   Queue q(5);
   //Pushing data in circular queue
   q.enQueue(10);
   q.enQueue(20);
   q.enQueue(3);
   q.enQueue(5);
   //Printing circular queue elements
   q.displayQueue();
   
   //Deleting front elements of circular queue
   printf("\nDeleted element = %d\n", q.deQueue());
   printf("\nDeleted element = %d", q.deQueue());
   q.displayQueue();
   q.enQueue(13);
   q.enQueue(27);
   q.enQueue(50);
   q.displayQueue();
   q.enQueue(22);
   
   return 0;
}

輸出

Circular Queue elements are: 
10 20 3 5 
Deleted element = 10

Deleted element = 20
Circular Queue elements are: 
3 5 
Circular Queue elements are: 
3 5 13 27 50 
No Space Queue is Full

結(jié)論

循環(huán)佇列在記憶體管理和CPU調(diào)度中使用。它使用displayQueue()函數(shù)來顯示佇列元素。

我們已經(jīng)到達本教學的結(jié)尾了。我希望這個教學能幫助你理解如何實作一個循環(huán)隊列。

以上是如何在C++中管理完整的循環(huán)佇列事件?的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔相應的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
推薦五款實用的C語言程式設計軟體 推薦五款實用的C語言程式設計軟體 Feb 18, 2024 pm 09:51 PM

C語言作為一門廣泛使用的程式語言,一直以來都受到開發(fā)者的喜愛。在進行C語言程式設計時,選擇合適的程式軟體是非常重要的。本文將為大家盤點五款實用的C語言程式設計工具,幫助大家提升程式效率與開發(fā)品質(zhì)。 VisualStudioCode(VSCode)VisualStudioCode是一款輕量級的跨平臺程式碼編輯器,它具有強大的插件生態(tài)系統(tǒng),支援多種語言和框架。 VS

如何在C語言程式中實現(xiàn)中文輸入輸出? 如何在C語言程式中實現(xiàn)中文輸入輸出? Feb 19, 2024 pm 08:22 PM

在C語言程式設計軟體中如何處理中文輸入輸出?隨著全球化的進一步發(fā)展,中文的應用範圍也越來越廣泛。在C語言程式設計中,如果需要處理中文輸入輸出,就需要考慮中文字元的編碼以及相關(guān)的處理方法。本文將介紹在C語言程式設計軟體中處理中文輸入輸出的一些常用方法。首先,我們需要了解中文字元的編碼方式。在電腦中,最常用的中文字元編碼方式是Unicode編碼。 Unicode編碼可以表示

C語言程式設計必備軟體:五個推薦給初學者的好幫手 C語言程式設計必備軟體:五個推薦給初學者的好幫手 Feb 20, 2024 pm 08:18 PM

C語言作為一門基礎而重要的程式語言,對於初學者來說,選擇合適的程式設計軟體是非常重要的。在市面上有許多不同的C語言程式設計軟體可供選擇,但對於初學者來說,適合自己的選擇可能有些困惑。本文將推薦給初學者的五個C語言程式設計軟體,幫助他們快速入門並提升程式設計能力。 Dev-C++Dev-C++是一款免費開源的整合開發(fā)環(huán)境(IDE),特別適合初學者使用。它簡單易用,整合了編輯器、

Python GUI程式設計:快速上手,輕鬆打造互動式介面 Python GUI程式設計:快速上手,輕鬆打造互動式介面 Feb 19, 2024 pm 01:24 PM

pythonGUI程式設計簡述GUI(GraphicalUserInterface,圖形使用者介面)是一種允許使用者透過圖形方式與電腦互動的方式。 GUI程式設計是指使用程式語言來創(chuàng)建圖形使用者介面。 Python是一種流行的程式語言,它提供了豐富的GUI函式庫,使得PythonGUI程式設計變得非常簡單。 PythonGUI函式庫介紹Python中有許多GUI函式庫,其中最常用的有:Tkinter:Tkinter是Python標準函式庫中自帶的GUI函式庫,它簡單易用,但功能有限。 PyQt:PyQt是一個跨平臺的GUI函式庫,它功能強大,

在C語言環(huán)境下如何對中文字元進行排序? 在C語言環(huán)境下如何對中文字元進行排序? Feb 18, 2024 pm 02:10 PM

如何在C語言程式設計軟體中實現(xiàn)中文字元排序功能?在現(xiàn)代社會,中文字元排序功能在許多軟體中都是不可或缺的功能之一。無論是在文字處理軟體、搜尋引擎或資料庫系統(tǒng)中,都需要對中文字元進行排序,以便更好地展示和處理中文文字資料。而在C語言程式設計中,如何實現(xiàn)中文字元排序功能呢?下面將簡要介紹一種方法。首先,為了在C語言中實作中文字元排序功能,我們需要使用到字串比較函數(shù)。然

如何在C++中管理完整的循環(huán)佇列事件? 如何在C++中管理完整的循環(huán)佇列事件? Sep 04, 2023 pm 06:41 PM

介紹CircularQueue是線性佇列的改進,它被引入來解決線性佇列中的記憶體浪費問題。循環(huán)佇列使用FIFO原則來插入和刪除其中的元素。在本教程中,我們將討論循環(huán)隊列的操作以及如何管理它。什麼是循環(huán)隊列?循環(huán)隊列是資料結(jié)構(gòu)中的另一個隊列,其前端和後端相互連接。它也被稱為循環(huán)緩衝區(qū)。它的操作與線性隊列類似,那麼為什麼我們需要在資料結(jié)構(gòu)中引入一個新的隊列呢?使用線性佇列時,當佇列達到其最大限制時,尾指標之前可能會存在一些記憶體空間。這會導致記憶體損失,而良好的演算法應該能夠充分利用資源。為了解決記憶體浪費

在C語言中寫一個列印鏡像空心平行四邊形的程序 在C語言中寫一個列印鏡像空心平行四邊形的程序 Aug 30, 2023 pm 06:29 PM

程式描述這是一個四邊形,其中兩對對邊是平行的。有六個重要的平行四邊形屬性需要了解對邊相等(AB=DC)。對角線相等(D=B)。相鄰角互補(A+D=180°)。如果一個角是直角,則所有角都是直角。平行四邊形的對角線互相平分。平行四邊形的每條對角線將其分成兩個相等的部分。演算法從用戶那裡接受行數(shù)和列數(shù)。將其儲存在rows和cols變數(shù)中。為了迭代行,運行一個外部循環(huán),循環(huán)結(jié)構(gòu)應該是for(r=1;r

入門學習C語言的五款程式設計軟體 入門學習C語言的五款程式設計軟體 Feb 19, 2024 pm 04:51 PM

C語言作為一門廣泛應用的程式語言,對於想從事電腦程式設計的人來說是必學的基礎語言之一。然而,對於初學者來說,學習新的程式語言可能會有些困難,尤其是缺乏相關(guān)的學習工具和教材。在本文中,我將介紹五款幫助初學者入門C語言的程式設計軟體,幫助你快速上手。第一款程式軟體是Code::Blocks。 Code::Blocks是一個免費的開源整合開發(fā)環(huán)境(IDE),適用於

See all articles