Menu
Coddy logo textTech

Practice #3

Coddy'nin Kuyruk - Veri Yapıları Serisi #2 kursunda ders 11 / 12.

Kuyruğu bir dairesel kuyruğa yükseltelim!

challenge icon

Görev

Kolay

Queue 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;
}

Kuyruk - Veri Yapıları Serisi #2 bölümündeki tüm dersler