Luyện tập #3
Bài học 11 trên 12 trong khóa học Hàng đợi, chuỗi cấu trúc dữ liệu #2 của Coddy.
Cùng nâng cấp Queue thành hàng đợi vòng nhé!
Thử thách
DễNâng cấp lớp Queue để hỗ trợ hàng đợi vòng, đồng thời đổi tên lớp thành CircularQueue.
Hàm khởi tạo nhận một số nguyên, là kích thước tối đa của hàng đợi vòng. Khi hàng đợi đầy và một phần tử mới được thêm vào, phần tử cũ nhất (ở đầu hàng đợi) sẽ bị xóa để nhường chỗ. Cập nhật các phương thức khác để hỗ trợ điều này.
Tự làm thử
#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;
}
Tất cả bài học trong Hàng đợi, chuỗi cấu trúc dữ liệu #2
Tự luyện tập: Trình biên dịch C online