利用“数组”作为存储结构方法实现“队列”的基本操作,包括:创建队列、入队列、出队列、队列满、队列空等基本操作。
时间: 2023-12-04 12:05:31 浏览: 30
好的,以下是利用数组实现队列的基本操作代码,供参考:
```c++
#include <iostream>
using namespace std;
const int MAXSIZE = 100; // 定义队列最大长度
class Queue {
private:
int data[MAXSIZE]; // 存储队列元素的数组
int front, rear; // 队头和队尾指针
public:
Queue() { // 构造函数,初始化队头和队尾指针
front = 0;
rear = 0;
}
bool isFull() { // 判断队列是否已满
return (rear + 1) % MAXSIZE == front;
}
bool isEmpty() { // 判断队列是否为空
return front == rear;
}
bool enqueue(int x) { // 入队列
if (isFull()) {
cout << "Queue is full! Cannot enqueue more elements." << endl;
return false;
}
data[rear] = x;
rear = (rear + 1) % MAXSIZE; // 队尾指针后移
return true;
}
bool dequeue(int& x) { // 出队列
if (isEmpty()) {
cout << "Queue is empty! Cannot dequeue any element." << endl;
return false;
}
x = data[front];
front = (front + 1) % MAXSIZE; // 队头指针后移
return true;
}
};
int main() {
Queue q;
int x;
q.enqueue(10);
q.enqueue(20);
q.enqueue(30);
q.dequeue(x);
cout << "Dequeued element: " << x << endl;
q.dequeue(x);
cout << "Dequeued element: " << x << endl;
q.enqueue(40);
q.enqueue(50);
while (!q.isEmpty()) {
q.dequeue(x);
cout << "Dequeued element: " << x << endl;
}
return 0;
}
```
以上代码中,`Queue` 类中的 `data` 数组存储队列中的元素,`front` 和 `rear` 指针分别指向队头和队尾元素的位置。`isFull()` 和 `isEmpty()` 函数用于判断队列是否已满和是否为空。`enqueue()` 函数将元素插入队列尾部,`dequeue()` 函数将队头元素弹出并返回。在插入和弹出元素时,需要更新 `front` 和 `rear` 指针的位置,同时需要对 `front` 和 `rear` 指针进行取模,以实现循环队列的功能。
阅读全文