算法训练2.7:简单的数据结构(双端队列)

简介: 分析:1.deque就是一个两头操作的队列。2.有头插,尾插:push_front()/push_back()。3.有头删,尾删:pop_front()/pop_back()。4.然后再用一些工作性算法:sort(排序),reverse(倒置)。知道这些之后做这道题就很简单了。

380011f6e8f84fecbf8feac94f9ddfc.png


分析:

1.deque就是一个两头操作的队列。

2.有头插,尾插:push_front()/push_back()。

3.有头删,尾删:pop_front()/pop_back()。

4.然后再用一些工作性算法:sort(排序),reverse(倒置)。

知道这些之后做这道题就很简单了。

源码:

include <bits/stdc++.h>

using namespace std;

const int maxn = 1e5 + 10;

char c[maxn];

deque q;

int main()

{

int n, m, x, y;
scanf("%d%d", &n, &m);
while (m--)
{
    scanf("%d", &x);
    {
if (x == 1)
        {
            scanf("%d", &y);
            q.push_front(y);
        }
else if (x == 2)
            q.pop_front();
else if (x == 3)
        {
            scanf("%d", &y);
            q.push_back(y);
        }
else if (x == 4)
            q.pop_back();
else if (x == 5)
reverse(q.begin(), q.end());
else if (x == 6)
        {
printf("%d\n", q.size());
for (int i = 0; i < q.size(); ++i)
printf("%d ", q[i]);
            puts("");
        }
else
sort(q.begin(), q.end());
    }
}

}

目录
相关文章
|
2天前
|
存储 C语言
数据结构基础详解(C语言): 栈与队列的详解附完整代码
栈是一种仅允许在一端进行插入和删除操作的线性表,常用于解决括号匹配、函数调用等问题。栈分为顺序栈和链栈,顺序栈使用数组存储,链栈基于单链表实现。栈的主要操作包括初始化、销毁、入栈、出栈等。栈的应用广泛,如表达式求值、递归等场景。栈的顺序存储结构由数组和栈顶指针构成,链栈则基于单链表的头插法实现。
|
3天前
|
Java
【数据结构】栈和队列的深度探索,从实现到应用详解
本文介绍了栈和队列这两种数据结构。栈是一种后进先出(LIFO)的数据结构,元素只能从栈顶进行插入和删除。栈的基本操作包括压栈、出栈、获取栈顶元素、判断是否为空及获取栈的大小。栈可以通过数组或链表实现,并可用于将递归转化为循环。队列则是一种先进先出(FIFO)的数据结构,元素只能从队尾插入,从队首移除。队列的基本操作包括入队、出队、获取队首元素、判断是否为空及获取队列大小。队列可通过双向链表或数组实现。此外,双端队列(Deque)支持两端插入和删除元素,提供了更丰富的操作。
10 0
【数据结构】栈和队列的深度探索,从实现到应用详解
|
26天前
|
缓存 算法 Java
刷算法,你应该知道的队列经典应用
文章介绍了队列的基本特性和经典应用,包括如何用队列实现栈、使用优先级队列解决Top K问题,并通过LeetCode题目示例展示了队列在算法实现中的应用。
刷算法,你应该知道的队列经典应用
|
25天前
|
机器学习/深度学习 人工智能 算法
【人工智能】线性回归模型:数据结构、算法详解与人工智能应用,附代码实现
线性回归是一种预测性建模技术,它研究的是因变量(目标)和自变量(特征)之间的关系。这种关系可以表示为一个线性方程,其中因变量是自变量的线性组合。
37 2
|
19天前
|
机器学习/深度学习 消息中间件 缓存
栈与队列的实现
栈与队列的实现
35 0
|
23天前
|
算法
【初阶数据结构篇】二叉树算法题
二叉树是否对称,即左右子树是否对称.
|
23天前
|
存储 算法
【初阶数据结构篇】顺序表和链表算法题
此题可以先找到中间节点,然后把后半部分逆置,最近前后两部分一一比对,如果节点的值全部相同,则即为回文。
|
23天前
|
测试技术
【初阶数据结构篇】队列的实现(赋源码)
首先队列和栈一样,不能进行遍历和随机访问,必须将队头出数据才能访问下一个,这样遍历求个数是不规范的。
|
24天前
|
算法 搜索推荐
支付宝商业化广告算法问题之基于pretrain—>finetune范式的知识迁移中,finetune阶段全参数训练与部分参数训练的效果如何比较
支付宝商业化广告算法问题之基于pretrain—>finetune范式的知识迁移中,finetune阶段全参数训练与部分参数训练的效果如何比较
|
26天前
|
存储 缓存 算法
深入解析B树:数据结构、存储结构与算法优势
深入解析B树:数据结构、存储结构与算法优势