写出c++代码判队列为空算法 输入:无 前置条件:队列存在 动作:判是否为空 输出:空返回1,否则返回0 后置条件:无
时间: 2024-10-22 22:09:28 浏览: 19
在C++中,我们可以创建一个循环队列类(CircularQueue),并实现一个判空的方法。这里使用一个标志变量`is_empty`来表示队列的状态:
```cpp
#include <iostream>
template <typename T>
class CircularQueue {
private:
int front, rear;
T* data; // 存储元素的动态数组
int size;
bool is_empty;
public:
// 构造函数和初始化
CircularQueue(int capacity) : front(0), rear(0), data(new T[capacity]), size(capacity), is_empty(true) {}
// 入队操作
void enqueue(T item) {
if (rear + 1 == front) { // 队列已满
is_empty = false;
} else {
data[rear] = item;
rear = (rear + 1) % size; // 使用模运算保持front和rear的关系
}
}
// 判空
bool isEmpty() const {
return is_empty || front == rear; // 根据定义,队列空意味着front等于rear且is_empty为真
}
// 出队操作
// ...
~CircularQueue() {
delete[] data;
}
};
// 示例:使用循环队列并判断是否为空
int main() {
CircularQueue<int> queue(5);
// 插入一些元素
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
// 判断队列是否为空
if (queue.isEmpty()) {
std::cout << "Queue is empty.\n";
} else {
std::cout << "Queue is not empty.\n";
}
return 0;
}
```
阅读全文