编写一个名为xunhuandui.cpp的程序,实现队列的各种基本运算(假设队列的元素类型为int),并在此基础上设计一个主程序,完成如下功能: (1)初始化队列Q (2)依次入队创建循环队列 (3)访问队头和队尾元素 (4)依次出队并输出
时间: 2024-11-18 19:17:03 浏览: 21
在C++中,我们可以使用`std::queue`容器来实现队列的功能,这是一个模板类,可以存储任意类型的元素。为了实现上述要求,首先需要包含必要的头文件,并定义队列的结构。下面是一个简单的示例,展示了如何实现`xunhuandui.cpp`:
```cpp
#include <iostream>
#include <queue> // 包含队列库
// 如果队列元素为整数,这里可以自定义类型
using ElementType = int;
class XunHuanDui {
public:
void enqueue(ElementType value) { q.push(value); }
ElementType dequeue() { return q.front(); } // 队头元素
bool isEmpty() const { return q.empty(); }
private:
std::queue<ElementType> q; // 使用C++标准库的队列
};
int main() {
// 初始化队列Q
XunHuanDui xhQueue;
// 创建循环队列,这里假设我们有一个无限大的数组作为队列边界
int array[100]; // 你可以根据需求调整大小
for (int i = 0; i < 5; ++i) {
xhQueue.enqueue(array[i % 100]); // 入队元素,模拟循环队列
std::cout << "Enqueued element: " << array[i % 100] << std::endl;
}
// 访问队头和队尾元素
if (!xhQueue.isEmpty()) {
std::cout << "Front element: " << xhQueue.dequeue() << std::endl;
std::cout << "Tail element: " << array[(xhQueue.q.front() - 1 + 100) % 100] << std::endl; // 根据队列原理推导队尾元素
} else {
std::cout << "Queue is empty!" << std::endl;
}
// 出队并输出
while (!xhQueue.isEmpty()) {
std::cout << "Dequeued element: " << xhQueue.dequeue() << std::endl;
}
return 0;
}
```
阅读全文