Practice #3
Coddy'nin Kuyruk - Veri Yapıları Serisi #2 kursunda ders 11 / 12.
Kuyruğu bir dairesel kuyruğa yükseltelim!
Görev
KolayQueue sınıfınızı bir dairesel kuyruğu (circular queue) destekleyecek şekilde yükseltin ve sınıfın adını CircularQueue olarak değiştirin.
Yapıcı metot (constructor), dairesel kuyruğun maksimum boyutunu temsil eden bir tam sayı alır. Kuyruk doluyken yeni bir öğe eklendiğinde (enqueue), yer açmak için en eski öğe (en baştaki) kaldırılır. Diğer metotları da bunu destekleyecek şekilde güncelleyin.
Kendin dene
#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;
}