对于循环队列,设计求其中元素个数的算法完整代码可实现
时间: 2024-01-27 14:03:31 浏览: 127
好的,以下是完整的循环队列求元素个数的算法代码实现,供您参考:
```c++
#include<iostream>
using namespace std;
const int MAXSIZE = 100; // 定义循环队列的最大长度
// 循环队列类的定义
class CircularQueue {
private:
int queue[MAXSIZE]; // 队列数组
int rear; // 队尾指针
int front; // 队头指针
int size; // 队列大小
public:
// 构造函数
CircularQueue(int s) {
rear = 0;
front = 0;
size = s;
}
// 入队操作
void enqueue(int data) {
if ((rear + 1) % size == front) {
cout << "Queue is full!" << endl;
return;
}
queue[rear] = data;
rear = (rear + 1) % size;
}
// 出队操作
int dequeue() {
if (rear == front) {
cout << "Queue is empty!" << endl;
return -1;
}
int data = queue[front];
front = (front + 1) % size;
return data;
}
// 获取队列中元素个数
int getLength() {
return (rear - front + size) % size;
}
};
// 测试循环队列
int main() {
CircularQueue queue(5); // 创建循环队列,大小为5
queue.enqueue(1); // 入队
queue.enqueue(2);
queue.enqueue(3);
cout << "Queue length: " << queue.getLength() << endl; // 获取队列中元素个数
cout << "Dequeue: " << queue.dequeue() << endl; // 出队
cout << "Queue length: " << queue.getLength() << endl; // 获取队列中元素个数
queue.enqueue(4); // 入队
queue.enqueue(5);
queue.enqueue(6);
cout << "Queue length: " << queue.getLength() << endl; // 获取队列中元素个数
return 0;
}
```
在该代码中,我们定义了一个循环队列类`CircularQueue`,其中包括入队、出队和获取队列中元素个数三个操作。在获取队列中元素个数的操作中,我们使用了前文提到的计算方法:`(rear - front + size) % size`。最后,我们在`main`函数中测试了该循环队列的功能。
阅读全文