Latihan #3
Pelajaran 11 dari 12 dalam kursus Antrean, Seri Struktur Data #2 di Coddy.
Mari tingkatkan Queue menjadi antrean sirkular!
Tantangan
MudahTingkatkan class Queue agar mendukung circular queue, lalu ubah nama class menjadi CircularQueue.
Constructor menerima bilangan bulat, yaitu ukuran maksimum circular queue. Saat queue penuh dan item baru dimasukkan, item paling lama (bagian depan) dihapus untuk memberi ruang. Perbarui method lainnya agar mendukung hal ini.
Coba sendiri
#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;
}
Semua pelajaran di Antrean, Seri Struktur Data #2
Latihan sendiri: Compiler C online