【概述】

stack 和 queue 是在程序设计中经常会用到的数据容器,STL 提供了方便的堆栈、队列的实现,准确地说,STL 中的 stack 与 queue 不同于 pair、vector 等容器,而是对栈、队列这三个数据结构的重新包装。

【stack 的使用】

stack 定义在 <stack> 头文件中,其提供了堆栈的全部功能,即实现了先进后出的数据结构。

定义: stack<type> stackName

stack 的基本操作有:

  • s.push(x):将元素 x 入栈
  • s.pop():将栈顶元素删除
  • s.top():访问栈顶元素
  • s.empty():判断栈是否为空,当栈为空时返回 true,否则返回 false
  • s.size():访问栈中元素的个数

【queue 的使用】

queue 定义在 <queue> 头文件中,其提供了队列的全部功能,即实现了先进先出的数据结构。

定义:queue<type> queueName

queue 的基本操作有:

  • q.push(x):入队,将 x 存入队列末端
  • q.pop():出队,将队列的第一个元素弹出
  • q.front():访问队首元素
  • q.back():访问队尾元素
  • q.empty():判断队列是否为空,当队列为空时返回 true,否则返回 false
  • q.size():访问队列中元素的个数

【例题】

1.栈

  • 后缀表达式的值(信息学奥赛一本通-T1331)(stack 计算后缀表达式):点击这里
  • 计算(信息学奥赛一本通-T1356)(stack 计算中缀表达式):点击这里
  • 中缀表达式值(信息学奥赛一本通-T1358)(stack 计算中缀表达式):点击这里
  • 扩号匹配问题(信息学奥赛一本通-T1203)(stack 匹配括号):点击这里
  • 表达式括号匹配(信息学奥赛一本通-T1353)(stack 匹配括号):点击这里
  • 括弧匹配检验(信息学奥赛一本通-T1354)(stack 匹配括号):点击这里
  • 字符串匹配问题(信息学奥赛一本通-T1355)(stack 匹配括号):点击这里
  • Vasya and Books(CF-1073B)(stack+模拟):点击这里
  • 车厢调度(信息学奥赛一本通-T1355)(stack+模拟):点击这里
  • 炫酷雪花(2019牛客寒假算法基础集训营 Day5-H)(stack+贪心):点击这里
  • wzoi(2019牛客寒假算法基础集训营 Day6-I)(stack+贪心):点击这里
  • Bracket Sequence(CF-223A)(栈的分段统计):点击这里
  • Ultimate Army(Gym-102267I)(双栈模拟):点击这里

2.队列

  • 围圈报数(信息学奥赛一本通-T1334)(queue+模拟):点击这里
  • Dispute(CF-242D)(queue+模拟):点击这里
  • 周末舞会(信息学奥赛一本通-T1332)(队列思想):点击这里
  • Blash数集(信息学奥赛一本通-T1333)(队列思想):点击这里
  • 产生数(信息学奥赛一本通-T1361)(队列思想):点击这里

线性结构 —— 栈与队列相关推荐

  1. 【数据结构基础】线性数据结构——栈和队列的总结及封装(C和java)

    前言 数据结构,一门数据处理的艺术,精巧的结构在一个又一个算法下发挥着他们无与伦比的高效和精密之美,在为信息技术打下坚实地基的同时,也令无数开发者和探索者为之着迷. 也因如此,它作为博主大二上学期最重 ...

  2. 【JS数据结构】线性结构——栈结构

    目录 一. 认识栈结构 1.栈结构 1.1 栈(stack) 1.2 生活中类似于栈的 1.3 栈结构的图解 1.4 程序中的函数调用栈是使用栈实现的呢? 1.5 栈面试题 二. 栈结构实现 1.栈的 ...

  3. 线性结构--栈--特点--结构--概念

    特殊线性表-栈: 与常规线性表有神么差别?在本质上是没有什么差别的,只是在运算规则上有较大的差距,具体请看以下介绍. 栈是被限制只能在一端进行插入和删除运算的线性表,可以使用的一端称为栈顶,不能使用的 ...

  4. 两栈共享存储空间(线性结构栈)

    #ifndef DOUBLESTACK_H #define DOUBLESTACK_H /*(1)引入1.如果需要两个相同类型的栈(顺序结构), 分别为了两个栈开辟存储空间.极有可能出现的情况是栈1已 ...

  5. 【数据结构(郝斌)】03线性结构-栈

    数据结构-栈 什么是栈 静态栈 动态栈 区别: 静态栈 动态栈 操作 栈的标准库操作 动态栈的操作实现 操作 void initStack(PSTACK s) void pushStack(PSTAC ...

  6. 数据结构 c++用栈实现四则运算_数据结构之线性结构——栈的四则运算实现

    目标: 用栈来自己编写程序,实现四则运算 拆解: 1. 任何表达式都由 操作数.运算符.定界符 组成 操作数即为参与计算的数值 运算符(这里只讨论算术运算符)有优先级之分 定界符可以改变运算次序 2. ...

  7. 纸上得来终觉浅,可以这里看一眼(一)---->栈和队列

    .栈和队列的概念以及实现 今天,我们介绍最后两个特殊的线性结构---->栈和队列.栈和队列一讲完,我们接下来就要进入二叉树的学习,其实如果前面的博客你能够理解的话,你就会惊奇的发现:栈和队列的所 ...

  8. 【数据结构笔记】3.栈和队列

    文章目录 第3章 栈和队列 3.1 栈 3.1.1 栈的基本概念 1.栈的定义 2.栈的基本操作 3.1.2 栈的顺序存储结构 1.顺序栈的实现 2.顺序栈的基本运算 3.共享栈 3.1.3 栈的链式 ...

  9. 数据结构Python版--线性结构

    文章目录 线性数据结构 栈 匹配括号 进制转换问题 前序.中序和后序表达式 队列 传土豆 打印任务 双端队列 回文检测器 列表 无序列表 有序列表 线性数据结构 栈,队列,双端队列和列表都是有序的数据 ...

最新文章

  1. hdu-4302-Holedox Eating-线段树-单点更新,有策略的单点查询
  2. linnux 流量控制模块tc_智能功率模块助力业界加速迈向基于碳化硅(SiC)的电动汽车...
  3. 回顾Node文件路径
  4. RabbitMQ在windows系统安装部署文档
  5. cnn图像二分类 python_人工智能Keras图像分类器(CNN卷积神经网络的图片识别篇)...
  6. python爬虫的技能_关于 Python 爬虫可能涉及到的技能点
  7. Bootstrap Magic – 轻松创建自己的 Bootstrap 主题
  8. mybatisplus查询今天的数据_Spring系列——MybatisPlus
  9. Linux系统与服务构建(一)
  10. 笔记本电脑桌面的计算机图标不见了,笔记本电脑桌面图标不见了怎么办
  11. DVWA教程实践之Brute Force
  12. 2022年固定资产管理系统的概况
  13. 网络攻防实战研究 漏洞利用与提权读书笔记二
  14. 微信公众平台官方接口
  15. 一个保护眼睛的小技巧
  16. Python分布式通用爬虫(4)
  17. python脚本编写流程
  18. Matlab学习(台大郭彦甫)第5节-初阶绘图
  19. 基础知识回顾——迭代器和生成器
  20. **软件著作权登记**

热门文章

  1. 关于“数据中心”的最强入门科普
  2. 手把手教你用直方图、饼图和条形图做数据分析(Python代码)
  3. 为什么程序员的女朋友或老婆颜值普遍都偏高?
  4. 从3000米高空,一跃而下…
  5. 有趣的图说 HashMap,普通人也能看懂
  6. 准备了2个月零21天,面试字节跳动挂在了第三面JVM上
  7. MiniDao1.7.1 版本发布,轻量级Java持久化框架
  8. springboot2.0集成activiti modeler
  9. jeewx-qywx-api 1.0版发布,微信企业号Java SDK
  10. Node.js初探之hello world