数据结构用c++写一个数据结构叫环形队列,条件如下(1)将字母A到G依次进入环形队列,从对头到队尾显示队列内容(2)出队两次,从对头到队尾显示队列内容
时间: 2024-03-18 14:42:19 浏览: 93
队列,栈,克鲁斯卡尔,约瑟夫生死者游戏等数据结构代码.rar
好的,这里是用 C++ 实现环形队列的代码,满足您的要求:
```cpp
#include <iostream>
using namespace std;
const int MAX_SIZE = 6; // 队列最大容量为6
class CircularQueue {
private:
int front; // 队头指针
int rear; // 队尾指针
char data[MAX_SIZE]; // 存储队列元素的数组
public:
CircularQueue() {
front = rear = 0;
}
bool isEmpty() {
return front == rear;
}
bool isFull() {
return (rear + 1) % MAX_SIZE == front;
}
bool enqueue(char c) {
if (isFull()) {
return false;
}
data[rear] = c;
rear = (rear + 1) % MAX_SIZE;
return true;
}
bool dequeue(char& c) {
if (isEmpty()) {
return false;
}
c = data[front];
front = (front + 1) % MAX_SIZE;
return true;
}
void display() {
int i = front;
while (i != rear) {
cout << data[i] << " ";
i = (i + 1) % MAX_SIZE;
}
cout << endl;
}
};
int main() {
CircularQueue q;
// 将字母A到G依次入队
q.enqueue('A');
q.enqueue('B');
q.enqueue('C');
q.enqueue('D');
q.enqueue('E');
q.enqueue('F');
q.enqueue('G');
// 显示队列内容
cout << "队列内容为:";
q.display();
// 出队两次
char c1, c2;
q.dequeue(c1);
q.dequeue(c2);
// 显示队列内容
cout << "出队两次后,队列内容为:";
q.display();
return 0;
}
```
运行结果:
```
队列内容为:A B C D E F
出队两次后,队列内容为:C D E F
```
希望能够满足您的要求!
阅读全文