B3616
cpp#include <iostream>
class Queue {
private:
int* data;
int front;
int rear;
int capacity;
int size;
public:
Queue(int cap) {
data = new int[cap];
capacity = cap;
front = rear = -1;
size = 0;
}
~Queue() {
delete[] data;
}
void push(int x) {
if (size == capacity) {
std::cout << "ERR_CANNOT_PUSH" << std::endl;
} else {
rear = (rear + 1) % capacity;
data[rear] = x;
if (size == 0) {
front = rear;
}
size++;
}
}
void pop() {
if (size == 0) {
std::cout << "ERR_CANNOT_POP" << std::endl;
} else {
front = (front + 1) % capacity;
size--;
}
}
void query() {
if (size == 0) {
std::cout << "ERR_CANNOT_QUERY" << std::endl;
} else {
std::cout << data[front] << std::endl;
}
}
int getSize() {
return size;
}
};
int main() {
int n;
std::cin >> n;
Queue q(100); // 假设队列最大容量为100
for (int i = 0; i < n; i++) {
int op;
std::cin >> op;
if (op == 1) {
int x;
std::cin >> x;
q.push(x);
} else if (op == 2) {
q.pop();
} else if (op == 3) {
q.query();
} else if (op == 4) {
std::cout << q.getSize() << std::endl;
}
}
return 0;
}
本文作者:yowayimono
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!