队列的基本操作C++
时间: 2024-06-13 11:05:03 浏览: 15
队列是一种先进先出(FIFO)的数据结构,常用的基本操作包括入队、出队、获取队头元素、获取队列长度等。以下是C++中队列的基本操作:
1. 初始化队列:使用STL中的queue容器可以很方便地初始化一个队列,例如:`queue<int> q;`。
2. 入队:使用STL中的push()函数将元素插入队尾,例如:`q.push(1);`。
3. 出队:使用STL中的pop()函数将队头元素删除,例如:`q.pop();`。
4. 获取队头元素:使用STL中的front()函数获取队头元素,例如:`int front_element = q.front();`。
5. 获取队列长度:使用STL中的size()函数获取队列长度,例如:`int queue_size = q.size();`。
6. 判定队列空/满操作:使用STL中的empty()函数判断队列是否为空,例如:`bool is_empty = q.empty();`。
7. 销毁队列:使用STL中的clear()函数清空队列,例如:`q.clear();`。
相关问题
队列的基本操作c++
队列是一种FIFO(先进先出)的数据结构,它的基本操作包括:
1. 入队(enqueue):在队列的尾部插入一个元素。
2. 出队(dequeue):删除并返回队列的头部元素。
3. 队列是否为空(empty):检查队列是否为空。
4. 队列大小(size):返回队列中元素的个数。
5. 访问队列头部元素(front):返回队列头部的元素,但不删除该元素。
6. 访问队列尾部元素(back):返回队列尾部的元素,但不删除该元素。
在C++中,可以使用STL的queue库来实现队列的基本操作,例如:
```c++
#include <queue>
using namespace std;
int main() {
queue<int> q; // 声明一个整数队列
q.push(1); // 入队
q.push(2);
q.push(3);
q.pop(); // 出队
int front_element = q.front(); // 访问队列头部元素
int back_element = q.back(); // 访问队列尾部元素
bool is_empty = q.empty(); // 检查队列是否为空
int size = q.size(); // 返回队列中元素的个数
return 0;
}
```
以上是队列的基本操作C++实现的示例。
链式队列的基本操作c++
链式队列是一种基于链表实现的队列,它的基本操作包括入队和出队。以下是链式队列的基本操作C++代码:
```C++
#include <iostream>
using namespace std;
// 链式队列结点的定义
template <typename T>
struct Node {
T data;
Node<T>* next;
};
// 链式队列的定义
template <typename T>
class LQueue {
public:
LQueue() {
front = rear = new Node<T>;
front->next = NULL;
}
~LQueue() {
while (front) {
rear = front->next;
delete front;
front = rear;
}
}
bool IsEmpty() const {
return front == rear;
}
void EnQueue(const T& x) {
rear->next = new Node<T>;
rear = rear->next;
rear->data = x;
rear->next = NULL;
}
bool DeQueue(T& x) {
if (IsEmpty()) {
return false;
}
Node<T>* p = front->next;
x = p->data;
front->next = p->next;
if (rear == p) {
rear = front;
}
delete p;
return true;
}
private:
Node<T>* front;
Node<T>* rear;
};
// 测试代码
int main() {
LQueue<int> q;
for (int i = 1; i <= 5; ++i) {
q.EnQueue(i);
}
int x;
while (!q.IsEmpty()) {
q.DeQueue(x);
cout << x << " ";
}
cout << endl;
return 0;
}
```