请实现一个MyQueue类,实现出队,入队,求队列长度. 实现入队函数 void push(int x); 实现出队函数int pop(); 实现求队列长度函数int size(); 输入格式: 每个
时间: 2024-11-24 21:40:29 浏览: 9
当然可以,这里是一个简单的 MyQueue 类的基本实现,它使用数组作为底层数据结构:
```cpp
#include <iostream>
using namespace std;
class MyQueue {
private:
int* queue; // 数组存储元素
int front; // 队首指针
int rear; // 队尾指针
int capacity; // 容量
public:
// 构造函数,初始化队列容量
MyQueue(int size) : queue(new int[size]), front(0), rear(0), capacity(size) {}
// 入队操作
void push(int x) {
if (rear == capacity - 1) { // 如果已满,无法入队
cout << "Queue is full.\n";
return;
}
queue[rear] = x;
rear = (rear + 1) % capacity; // 循环数组,保持front和rear的相对位置
}
// 出队操作
int pop() {
if (front == rear) { // 空队列,无法出队
cout << "Queue is empty.\n";
return -1; // 返回错误码或特殊值表示空队列
}
int value = queue[front];
front = (front + 1) % capacity; // 移动front指针
return value;
}
// 获取队列长度
int size() const {
if (front > rear) {
return rear - front + 1; // 正常情况,队列非空
} else {
return capacity - front; // 队列为空,或只有一个元素的情况
}
}
// 释放内存
~MyQueue() {
delete[] queue;
}
};
// 示例
int main() {
MyQueue q(5); // 创建一个容量为5的队列
q.push(1);
q.push(2);
cout << "Queue size: " << q.size() << endl;
cout << "Popped element: " << q.pop() << endl;
cout << "Queue size after pop: " << q.size() << endl;
return 0;
}
```
在这个实现中,`push()` 和 `pop()` 函数分别用于在队尾添加元素和从队头移除元素,`size()` 函数返回当前队列的元素个数。请注意,这只是一个基本示例,实际应用中你可能会选择更高效的数据结构如链表。
阅读全文