编写一个c++程序:1.将字母‘A ~‘G’依次进入环形队列,从队头到队尾显示队列内容;2. 出队2次,从队头到队尾显示队列内容:
时间: 2024-03-18 16:41:42 浏览: 84
好的,以下是符合您要求的 C++ 程序:
```c++
#include <iostream>
using namespace std;
const int MAXSIZE = 7; // 环形队列的最大长度
class CircularQueue {
private:
char data[MAXSIZE];
int front, rear;
public:
CircularQueue() { front = rear = 0; } // 初始化队头和队尾为0
bool isEmpty() { return front == rear; } // 判断队列是否为空
bool isFull() { return (rear + 1) % MAXSIZE == front; } // 判断队列是否已满
bool enqueue(char c) { // 入队操作
if (isFull()) return false; // 队列已满,无法入队
data[rear] = c;
rear = (rear + 1) % MAXSIZE; // rear指向下一个空位
return true;
}
bool dequeue() { // 出队操作
if (isEmpty()) return false; // 队列为空,无法出队
front = (front + 1) % MAXSIZE; // front指向下一个元素
return true;
}
void display() { // 显示队列内容
if (isEmpty()) {
cout << "Queue is empty." << endl;
return;
}
cout << "Queue: ";
int i = front;
while (i != rear) {
cout << data[i] << " ";
i = (i + 1) % MAXSIZE; // i指向下一个元素
}
cout << endl;
}
};
int main() {
CircularQueue q;
char c = 'A';
for (int i = 0; i < 7; i++) { // 将字母'A'~'G'依次入队
q.enqueue(c);
c++;
}
q.display(); // 显示队列内容
q.dequeue(); // 出队1次
q.dequeue(); // 出队2次
q.display(); // 显示队列内容
return 0;
}
```
程序的运行结果如下:
```
Queue: A B C D E F G
Queue: C D E F G
```
阅读全文