当前位置:   article > 正文

双端队列(c++)_c++双端队列

c++双端队列

双端队列(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操作来检查队列是否为空,并获取队列中元素的个数。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/975224
推荐阅读
相关标签
  

闽ICP备14008679号