Inhaltsverzeichnis
Einführung
Was ist eine kreisförmige Warteschlange?
Zirkuläre Warteschlange verwalten
Beispiel
Ausgabe
Fazit
Heim Backend-Entwicklung C++ Wie verwalte ich eine vollständige kreisförmige Ereigniswarteschlange in C++?

Wie verwalte ich eine vollständige kreisförmige Ereigniswarteschlange in C++?

Sep 04, 2023 pm 06:41 PM
事件处理 c语言编程 Zirkuläres Warteschlangenmanagement

Einführung

Circular Queue ist eine Verbesserung der linearen Warteschlange, die eingeführt wurde, um das Problem der Speicherverschwendung in linearen Warteschlangen zu lösen. Zirkuläre Warteschlangen nutzen das FIFO-Prinzip, um Elemente daraus einzufügen und daraus zu löschen. In diesem Tutorial besprechen wir den Betrieb einer zirkulären Warteschlange und deren Verwaltung.

Was ist eine kreisförmige Warteschlange?

Circular Queue ist eine andere Art von Warteschlange in der Datenstruktur, bei der das Front-End und das Back-End miteinander verbunden sind. Er wird auch als Ringpuffer bezeichnet. Sie funktioniert ähnlich wie eine lineare Warteschlange. Warum müssen wir also eine neue Warteschlange in die Datenstruktur einführen?

Wenn Sie eine lineare Warteschlange verwenden und die Warteschlange ihr maximales Limit erreicht, ist möglicherweise etwas Speicherplatz vor dem Endzeiger vorhanden. Dies führt zu Speicherverlust und ein guter Algorithmus sollte in der Lage sein, die Ressourcen voll auszunutzen.

Um das Problem der Speicherverschwendung zu lösen, haben Entwickler das Konzept der zirkulären Warteschlange eingeführt, das eine zirkuläre Verbindung zum Backend und Frontend herstellen und weitere Elemente einfügen kann.

Wie verwalte ich eine vollständige kreisförmige Ereigniswarteschlange in C++?

Grundfunktionen der kreisförmigen Warteschlange

  • Post - Gibt den Postwert der Warteschlange zurück.

  • Front - Gibt den vorderen Wert der Warteschlange zurück.

  • deQueue – Diese integrierte Methode wird verwendet, um Elemente aus der Warteschlange zu entfernen und gleichzeitig zu prüfen, ob die Warteschlange leer ist.

  • enQueue − Diese Methode wird verwendet, um neue Elemente einzufügen und gleichzeitig die Warteschlangengröße zu überprüfen.

In einer zirkulären Warteschlange werden Elemente aus dem Backend hinzugefügt und aus dem Frontend entfernt. deQueue und enQueue sind von der Warteschlangengröße unabhängige Funktionen und werden mithilfe des Modulo-Operators implementiert. Ihre Zeitkomplexität beträgt O(1).

Zirkuläre Warteschlange verwalten

Wir verwalten zirkuläre Warteschlangen mithilfe von enQueue- und deQueue-Operationen. Anfänglich ist der vordere Wert der Ringwarteschlange 0, der hintere Wert -1 und alle Elemente in der Ringwarteschlange sind NULL.

Beispiel

C++-Code, der Arrays verwendet, um eine kreisförmige Warteschlange zu implementieren

#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;
}
Nach dem Login kopieren

Ausgabe

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
Nach dem Login kopieren

Fazit

Zirkuläre Warteschlangen werden bei der Speicherverwaltung und CPU-Planung verwendet. Es verwendet die Funktion displayQueue(), um Warteschlangenelemente anzuzeigen.

Wir sind am Ende dieses Tutorials angelangt. Ich hoffe, dieses Tutorial hat Ihnen geholfen zu verstehen, wie man eine kreisförmige Warteschlange implementiert.

Das obige ist der detaillierte Inhalt vonWie verwalte ich eine vollständige kreisförmige Ereigniswarteschlange in C++?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Empfehlen Sie fünf praktische C-Programmiersoftware Empfehlen Sie fünf praktische C-Programmiersoftware Feb 18, 2024 pm 09:51 PM

Als weit verbreitete Programmiersprache war die Sprache C schon immer bei Entwicklern beliebt. Beim Programmieren in der Sprache C ist es sehr wichtig, die richtige Programmiersoftware auszuwählen. In diesem Artikel werden fünf praktische C-Programmiertools vorgestellt, mit denen Sie die Programmiereffizienz und Entwicklungsqualität verbessern können. VisualStudioCode (VSCode) VisualStudioCode ist ein leichter plattformübergreifender Code-Editor mit einem leistungsstarken Plug-in-Ökosystem, das mehrere Sprachen und Frameworks unterstützt. VS

Unverzichtbare Software für die C-Sprachprogrammierung: Fünf gute Helfer, die Einsteigern empfohlen werden Unverzichtbare Software für die C-Sprachprogrammierung: Fünf gute Helfer, die Einsteigern empfohlen werden Feb 20, 2024 pm 08:18 PM

Die Sprache C ist eine grundlegende und wichtige Programmiersprache. Für Anfänger ist es sehr wichtig, die richtige Programmiersoftware auszuwählen. Es gibt viele verschiedene Optionen für C-Programmiersoftware auf dem Markt, aber für Anfänger kann es etwas verwirrend sein, sich für die richtige zu entscheiden. In diesem Artikel werden Anfängern fünf C-Programmiersoftware empfohlen, um ihnen den schnellen Einstieg zu erleichtern und ihre Programmierkenntnisse zu verbessern. Dev-C++Dev-C++ ist eine kostenlose und quelloffene integrierte Entwicklungsumgebung (IDE), die sich besonders für Anfänger eignet. Es ist einfach und benutzerfreundlich und integriert einen Editor,

Wie implementiert man chinesische Eingabe und Ausgabe in einem C-Sprachprogramm? Wie implementiert man chinesische Eingabe und Ausgabe in einem C-Sprachprogramm? Feb 19, 2024 pm 08:22 PM

Wie gehe ich mit der chinesischen Ein- und Ausgabe in C-Programmiersoftware um? Mit der weiteren Entwicklung der Globalisierung wird der Anwendungsbereich der chinesischen Sprache immer umfangreicher. Wenn Sie in der C-Sprachprogrammierung chinesische Eingaben und Ausgaben verarbeiten müssen, müssen Sie die Codierung chinesischer Zeichen und die damit verbundenen Verarbeitungsmethoden berücksichtigen. In diesem Artikel werden einige gängige Methoden zur Verarbeitung chinesischer Eingaben und Ausgaben in Programmiersoftware in C-Sprache vorgestellt. Zuerst müssen wir verstehen, wie chinesische Schriftzeichen kodiert werden. In Computern ist die Unicode-Kodierung die am häufigsten verwendete Methode zur Kodierung chinesischer Zeichen. Unicode-Kodierung kann darstellen

Fünf Programmiersoftware für den Einstieg in das Erlernen der C-Sprache Fünf Programmiersoftware für den Einstieg in das Erlernen der C-Sprache Feb 19, 2024 pm 04:51 PM

Als weit verbreitete Programmiersprache ist die C-Sprache eine der grundlegenden Sprachen, die für diejenigen erlernt werden müssen, die sich mit Computerprogrammierung befassen möchten. Für Anfänger kann das Erlernen einer neuen Programmiersprache jedoch etwas schwierig sein, insbesondere aufgrund des Mangels an entsprechenden Lernwerkzeugen und Lehrmaterialien. In diesem Artikel werde ich fünf Programmiersoftware vorstellen, die Anfängern den Einstieg in die C-Sprache erleichtert und Ihnen einen schnellen Einstieg ermöglicht. Die erste Programmiersoftware war Code::Blocks. Code::Blocks ist eine kostenlose integrierte Open-Source-Entwicklungsumgebung (IDE) für

Analysieren Sie häufige Eingabeformatprobleme der Scanf-Funktion der C-Sprache Analysieren Sie häufige Eingabeformatprobleme der Scanf-Funktion der C-Sprache Feb 19, 2024 am 09:30 AM

Analyse häufig gestellter Fragen zum C-Sprach-Scanf-Eingabeformat Beim Programmieren in C-Sprache ist die Eingabefunktion für die Ausführung des Programms sehr wichtig. Wir verwenden häufig die Scanf-Funktion, um Benutzereingaben zu empfangen. Aufgrund der Vielfalt und Komplexität der Eingabe können jedoch einige häufige Probleme bei der Verwendung der Scanf-Funktion auftreten. In diesem Artikel werden einige häufig auftretende Probleme mit dem Scanf-Eingabeformat analysiert und spezifische Codebeispiele bereitgestellt. Die eingegebenen Zeichen stimmen nicht mit dem Format überein. Bei Verwendung der scanf-Funktion müssen wir das Eingabeformat angeben. Beispiel: „%d

Python-GUI-Programmierung: Beginnen Sie schnell und erstellen Sie einfach interaktive Schnittstellen Python-GUI-Programmierung: Beginnen Sie schnell und erstellen Sie einfach interaktive Schnittstellen Feb 19, 2024 pm 01:24 PM

Eine kurze Einführung in die Python-GUI-Programmierung. GUI (Graphical User Interface, grafische Benutzeroberfläche) ist eine Möglichkeit, Benutzern die grafische Interaktion mit Computern zu ermöglichen. Unter GUI-Programmierung versteht man die Verwendung von Programmiersprachen zur Erstellung grafischer Benutzeroberflächen. Python ist eine beliebte Programmiersprache, die eine umfangreiche GUI-Bibliothek bietet und die Python-GUI-Programmierung sehr einfach macht. Einführung in die Python-GUI-Bibliothek Es gibt viele GUI-Bibliotheken in Python, von denen die am häufigsten verwendeten sind: Tkinter: Tkinter ist die GUI-Bibliothek, die mit der Python-Standardbibliothek geliefert wird. Sie ist einfach und benutzerfreundlich, verfügt jedoch über begrenzte Funktionen. PyQt: PyQt ist eine plattformübergreifende GUI-Bibliothek mit leistungsstarken Funktionen.

Wie implementiert man die Kodierung und Dekodierung chinesischer Zeichen in der C-Sprachprogrammierung? Wie implementiert man die Kodierung und Dekodierung chinesischer Zeichen in der C-Sprachprogrammierung? Feb 19, 2024 pm 02:15 PM

In der modernen Computerprogrammierung ist die Sprache C eine der am häufigsten verwendeten Programmiersprachen. Obwohl die C-Sprache selbst die chinesische Kodierung und Dekodierung nicht direkt unterstützt, können wir einige Technologien und Bibliotheken verwenden, um diese Funktion zu erreichen. In diesem Artikel wird erläutert, wie die chinesische Kodierung und Dekodierung in C-Sprachprogrammiersoftware implementiert wird. Um die chinesische Kodierung und Dekodierung zu implementieren, müssen wir zunächst die Grundkonzepte der chinesischen Kodierung verstehen. Derzeit ist das am häufigsten verwendete chinesische Codierungsschema die Unicode-Codierung. Die Unicode-Kodierung weist jedem Zeichen einen eindeutigen numerischen Wert zu, sodass bei der Berechnung

Wie sortiere ich chinesische Zeichen in einer C-Sprachumgebung? Wie sortiere ich chinesische Zeichen in einer C-Sprachumgebung? Feb 18, 2024 pm 02:10 PM

Wie implementiert man die Sortierfunktion für chinesische Zeichen in C-Programmiersoftware? In der modernen Gesellschaft ist die Sortierfunktion für chinesische Zeichen eine der wesentlichen Funktionen in vielen Softwareprogrammen. Ob in Textverarbeitungsprogrammen, Suchmaschinen oder Datenbanksystemen: Chinesische Schriftzeichen müssen sortiert werden, um chinesische Textdaten besser anzeigen und verarbeiten zu können. Wie implementiert man in der C-Sprachprogrammierung die Sortierfunktion für chinesische Zeichen? Eine Methode wird im Folgenden kurz vorgestellt. Um die Sortierfunktion für chinesische Zeichen in der C-Sprache zu implementieren, müssen wir zunächst die Zeichenfolgenvergleichsfunktion verwenden. Ran

See all articles