Menu
Coddy logo textTech

Practice #3

Lektion 11 von 12 im Kurs Queue - Datenstrukturen-Serie #2 von Coddy.

Lassen Sie uns die Queue zu einer zirkulären Warteschlange aufrüsten!

challenge icon

Aufgabe

Einfach

Aktualisieren Sie Ihre Queue-Klasse, um eine Circular Queue (Ringspeicher) zu unterstützen, und benennen Sie die Klasse in CircularQueue um.

Der Konstruktor nimmt eine Ganzzahl entgegen — die maximale Größe der Circular Queue. Wenn die Warteschlange voll ist und ein neues Element mit enqueue hinzugefügt wird, wird das älteste Element (das vorderste) entfernt, um Platz zu schaffen. Aktualisieren Sie die anderen Methoden, um dies zu unterstützen.

Probier es selbst

#include <iostream>
#include <sstream>
#include <string>
#include "circular_queue.h"

int main() {
    std::string line;
    std::getline(std::cin, line);
    CircularQueue q(std::stoi(line));
    while (std::getline(std::cin, line)) {
        std::istringstream iss(line);
        std::string cmd;
        if (!(iss >> cmd)) continue;
        if (cmd == "enqueue") {
            int x; iss >> x; q.enqueue(x);
        }
        if (cmd == "dequeue") {
            q.dequeue();
        }
        if (cmd == "front") {
            std::cout << q.front() << std::endl;
        }
        if (cmd == "rear") {
            std::cout << q.rear() << std::endl;
        }
        if (cmd == "size") {
            std::cout << q.size() << std::endl;
        }
    }
    return 0;
}

Alle Lektionen in Queue - Datenstrukturen-Serie #2