设队列的元素类型为char,实现顺序循环队列的各种基本操作的程序
时间: 2023-06-03 20:03:52 浏览: 66
好的,这是一个实现顺序循环队列基本操作的程序:
```c++
#include <iostream>
using namespace std;
const int MAXSIZE = 100; // 定义队列的最大长度
class Queue {
private:
char data[MAXSIZE]; // 队列存储空间
int front; // 队头指针
int rear; // 队尾指针
public:
Queue() {
front = 0;
rear = 0;
}
bool isEmpty() { // 判断队列是否为空
return front == rear;
}
bool isFull() { // 判断队列是否已满
return (rear + 1) % MAXSIZE == front;
}
void enqueue(char c) { // 入队操作
if (!isFull()) {
data[rear] = c;
rear = (rear + 1) % MAXSIZE;
}
}
char dequeue() { // 出队操作
char c;
if (!isEmpty()) {
c = data[front];
front = (front + 1) % MAXSIZE;
return c;
}
}
int size() { // 返回队列中元素个数
return (rear - front + MAXSIZE) % MAXSIZE;
}
char getFront() { // 获取队头元素
if (!isEmpty()) {
return data[front];
}
}
};
int main()
{
Queue q;
cout << "队列是否为空:" << q.isEmpty() << endl;
cout << "队列是否已满:" << q.isFull() << endl;
q.enqueue('a');
q.enqueue('b');
q.enqueue('c');
cout << "队列是否为空:" << q.isEmpty() << endl;
cout << "队列是否已满:" << q.isFull() << endl;
cout << "队列元素个数:" << q.size() << endl;
cout << "队头元素:" << q.getFront() << endl;
cout << "出队元素:" << q.dequeue() << endl;
cout << "出队元素:" << q.dequeue() << endl;
cout << "队列元素个数:" << q.size() << endl;
return 0;
}
```
注意:此程序只是一个演示,没有进行异常处理。在实际应用中,需要对队列进行异常处理,以保证程序的正确性。