顺序队列 C++ 讲解
时间: 2023-08-28 09:08:04 浏览: 52
顺序队列是一种基于数组实现的队列,它的特点是先进先出,即先进入队列的元素先出队列。下面是一个简单的顺序队列的实现,使用C++语言:
```cpp
const int MAXSIZE = 100; // 队列最大容量
class SeqQueue {
private:
int data[MAXSIZE]; // 存储队列元素的数组
int front; // 队头指针
int rear; // 队尾指针
public:
SeqQueue() {
front = rear = -1; // 初始化队头和队尾指针
}
bool isEmpty() {
return front == rear; // 队列为空的条件是队头指针和队尾指针相等
}
bool isFull() {
return rear == MAXSIZE - 1; // 队列已满的条件是队尾指针指向数组的最后一个元素
}
bool enQueue(int x) { // 入队操作
if (isFull()) return false; // 如果队列已满,返回false
rear++; // 队尾指针加1
data[rear] = x; // 将元素x存入队尾指向的位置
return true;
}
bool deQueue(int& x) { // 出队操作
if (isEmpty()) return false; // 如果队列为空,返回false
front++; // 队头指针加1
x = data[front]; // 取出队头元素
return true;
}
};
```
在这个实现中,我们将队列元素存储在一个数组中,使用front和rear分别指向队列的头部和尾部。isEmpty和isFull方法用于判断队列是否为空或已满。enQueue方法用于将元素加入队列尾部,deQueue方法用于从队列头部取出元素。
需要注意的是,这个实现中没有考虑队列的扩容问题,如果队列已满,入队操作将会失败。在实际应用中,需要根据具体情况来进行扩容操作。