赞
踩
双端队列(Double-ended queue,简称Deque)是一种可以在队列头尾两端进行插入和删除操作的数据结构。它是一种抽象数据类型,可以实现队列和栈的功能。
双端队列的基本操作包括:
1. push_front(x):将元素x插入到队列头部
2. push_back(x):将元素x插入到队列尾部
3. pop_front():弹出队列头部元素
4. pop_back():弹出队列尾部元素
5. front():返回队列头部元素
6. back():返回队列尾部元素
7. empty():判断队列是否为空
8. size():返回队列中元素的个数
下面是使用C++实现双端队列的代码:
```c++
#include <iostream>
#include <deque>
using namespace std;
int main()
{
deque<int> dq;
// push elements to the front of deque
dq.push_front(1);
dq.push_front(2);
dq.push_front(3);
// push elements to the back of deque
dq.push_back(4);
dq.push_back(5);
dq.push_back(6);
// print deque
for (auto it = dq.begin(); it != dq.end(); ++it) {
cout << *it << " ";
}
cout << endl;
// pop elements from the front of deque
dq.pop_front();
dq.pop_front();
// pop elements from the back of deque
dq.pop_back();
dq.pop_back();
// print deque
for (auto it = dq.begin(); it != dq.end(); ++it) {
cout << *it << " ";
}
cout << endl;
// get front and back elements of deque
cout << "Front element: " << dq.front() << endl;
cout << "Back element: " << dq.back() << endl;
// check if deque is empty
if (dq.empty()) {
cout << "Deque is empty" << endl;
}
else {
cout << "Deque is not empty" << endl;
}
// get size of deque
cout << "Size of deque: " << dq.size() << endl;
return 0;
}
```
输出结果为:
```
3 2 1 4 5 6
1 4 5
Front element: 1
Back element: 5
Deque is not empty
Size of deque: 3
```
在上面的代码中,我们使用了C++ STL中的deque容器来实现双端队列。我们首先使用push_front和push_back操作向队列中添加元素,然后使用pop_front和pop_back操作从队列中弹出元素。我们还使用front和back操作来获取队列头部和尾部的元素,并使用empty和size操作来检查队列是否为空,并获取队列中元素的个数。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。