队列的基本操作c++删除队首
时间: 2023-12-11 15:30:39 浏览: 96
队列的基本操作中,删除队首元素的操作称为出队(Dequeue)。在C++中,可以通过链式队列的实现来实现出队操作。具体代码如下所示:
```c++
// 链式队列结点的定义
struct Node {
int data;
Node* next;
Node(int x) : data(x), next(nullptr) {}
};
// 链式队列的定义
class LQueue {
private:
Node* front; // 队首指针
Node* rear; // 队尾指针
public:
// 构造函数
LQueue() {
front = rear = nullptr;
}
// 判断队列是否为空
bool IsEmpty() {
return front == nullptr;
}
// 入队操作
void Enqueue(int x) {
Node* p = new Node(x);
if (IsEmpty()) {
front = rear = p;
} else {
rear->next = p;
rear = p;
}
}
// 出队操作
void Dequeue() {
if (IsEmpty()) {
cout << "队列为空,无法出队!" << endl;
} else {
Node* p = front;
front = front->next;
delete p;
}
}
// 读取队首元素
int GetHead() {
if (IsEmpty()) {
cout << "队列为空,法读取队首元素!" << endl;
return -1;
} else {
return front->data;
}
}
};
// 使用示例
int main() {
LQueue q;
q.Enqueue(1);
q.Enqueue(2);
q.Enqueue(3);
cout << q.GetHead() << endl; // 输出1
q.Dequeue();
cout << q.GetHead() << endl; // 输出2
q.Dequeue();
cout << q.GetHead() << endl; // 输出3
q.Dequeue();
q.Dequeue(); // 输出“队列为空,无法出队!”
return 0;
}
```
阅读全文