线性结构 —— 栈与队列

【概述】

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
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值