用c➕➕描述循环队列每种操作在顺序循环队列上的实现
时间: 2024-04-14 21:06:16 浏览: 108
循环队列的基本操作的c算法实现
循环队列是一种具有环形结构的队列,可以在队列满时进行插入操作而不会导致队列溢出。下面是在顺序循环队列上实现各种操作的C++代码:
```c++
const int MAXSIZE = 100; // 队列的最大长度
class CircularQueue {
private:
int front; // 队头指针
int rear; // 队尾指针
int* data; // 队列元素数组
int size; // 队列当前元素个数
int capacity; // 队列最大容量
public:
CircularQueue() { // 队列的构造函数
front = rear = 0;
size = 0;
capacity = MAXSIZE;
data = new int[MAXSIZE];
}
~CircularQueue() { // 队列的析构函数
delete [] data;
}
bool isEmpty() { // 判断队列是否为空
return size == 0;
}
bool isFull() { // 判断队列是否已满
return size == capacity;
}
int getLength() { // 获取队列当前元素个数
return size;
}
bool enQueue(int x) { // 入队操作
if (isFull()) {
return false;
}
data[rear] = x;
rear = (rear + 1) % capacity;
size++;
return true;
}
bool deQueue(int& x) { // 出队操作
if (isEmpty()) {
return false;
}
x = data[front];
front = (front + 1) % capacity;
size--;
return true;
}
bool getFront(int& x) { // 获取队头元素
if (isEmpty()) {
return false;
}
x = data[front];
return true;
}
};
```
在上述代码中,我们使用了一个整型数组 `data` 来存储队列元素,使用两个指针 `front` 和 `rear` 分别指向队头和队尾,使用一个整型变量 `size` 统计队列当前元素个数,使用一个整型常量 `capacity` 来表示队列最大容量。由于队列是一个环形结构,因此在入队和出队操作时需要对指针进行取模运算。
阅读全文