用C++编写一个名为xunhuandui.cpp的程序,实现队列的各种基本运算(假设队列的元素类型为int),并在此基础上设计一个主程序,完成如下功能: (1). 初始化队列Q (2). 依次入队创建循环队列 (3). 访问队头和队尾元素 (4). 依次出队并输出
时间: 2024-11-20 21:38:21 浏览: 24
在C++中,我们可以使用STL(标准模板库)中的`std::queue`容器来实现队列的基本操作。这里是一个简单的示例,展示了如何实现上述功能:
```cpp
#include <iostream>
#include <queue>
// 定义队列的元素类型
using namespace std;
class MyQueue {
public:
// 初始化队列
void init() {
queue<int> Q;
cout << "Queue initialized." << endl;
}
// 入队操作
void enqueue(int value) {
Q.push(value);
cout << "Enqueued element: " << value << endl;
}
// 出队操作
int dequeue() {
if (Q.empty()) {
throw runtime_error("Queue is empty.");
}
return Q.front(); // 返回队首元素
}
// 访问队头元素
int front() {
if (Q.empty()) {
throw runtime_error("Queue is empty.");
}
return Q.front();
}
// 访问队尾元素(对于循环队列来说通常不可行)
int rear() {
return Q.back(); // 对于非循环队列,这将抛出异常
}
private:
queue<int> Q;
};
int main() {
MyQueue q;
// 初始化队列
q.init();
// 循环入队,例如5次
for (int i = 0; i < 5; ++i) {
q.enqueue(i);
}
// 输出队头元素
cout << "Front element: " << q.front() << endl;
// 出队并输出
cout << "Dequeued and outputted element: " << q.dequeue() << endl;
return 0;
}
```
注意,由于题目要求是实现循环队列,这里并没有直接实现,因为C++标准库中的`queue`默认是非循环的。如果你需要循环队列,你需要自定义数据结构,并手动维护队尾指针。在上面的代码里,`rear()`函数返回的是`back()`,这会抛出异常。
阅读全文