Practice #3
Leçon 11 sur 12 du cours File - Série sur les structures de données n°2 de Coddy.
Améliorons la file d'attente pour en faire une file circulaire !
Défi
FacileMettez à jour votre classe Queue pour prendre en charge une file circulaire, et renommez la classe en CircularQueue.
Le constructeur prend un entier — la taille maximale de la file circulaire. Lorsque la file est pleine et qu'un nouvel élément est enfilé, l'élément le plus ancien (le début de la file) est supprimé pour faire de la place. Mettez à jour les autres méthodes pour prendre cela en charge.
Essayez vous-même
#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;
}