当前位置: 首页 > news >正文

栈-模拟栈

实现一个栈,栈初始为空,支持四种操作:

  1. push x – 向栈顶插入一个数 x;

  2. pop – 从栈顶弹出一个数;

  3. empty – 判断栈是否为空;

  4. query – 查询栈顶元素。

现在要对栈进行 M 个操作,其中的每个操作 3和操作 4 都要输出相应的结果。

#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int N = 100010;
int stk[N],tt;int main()
{tt = 0;//一直表示栈顶元素 每push一个元素 tt+1 此时tt+1就是栈顶int m;cin>>m;while(m--){string op;cin>>op;int x;if(op == "push"){cin>>x;stk[++tt] = x;//入栈 tt+1 tt+1是栈顶}else if(op == "pop"){tt--;//如果一开始tt=5 则stk[5]是栈顶元素 pop一下 stk[4]变成栈顶元素 // tt-1 后面有入栈push的话 stk[5]原有的值正好被取代}else if(op == "empty"){cout<<(tt ? "NO" : "YES")<<endl;// 这里代表 如果tt不是0 那就是no非空 tt是0 就是yes空}else{cout<<stk[tt]<<endl;}}return 0;
}

输入样例:

10
push 5
query
push 6
pop
query
pop
empty
push 4
query
empty

输出样例:

5
5
YES
4
NO

具体模板和算法解释详情见Acwing算法基础课:活动 - AcWing

http://www.lryc.cn/news/102529.html

相关文章:

  • 图观| 从王宝强、费翔、阿汤哥等新上映的电影聊聊图的智能推荐场景
  • Redis系列一:介绍
  • Java 设计模式 - 单例模式 - 保证类只有一个实例
  • 第2章 JavaScript语法
  • 【Golang】Golang进阶系列教程--为什么 Go for-range 的 value 值地址每次都一样?
  • 小研究 - JVM 垃圾回收方式性能研究(三)
  • java根据poi解析excel内容
  • 实验报告-Sublime配置默认语法,以配置Verilog语法为例
  • pve安装ikuai并设置,同时把pve的网络连接到ikuai虚拟机
  • Android 面试题 ANR 五
  • 实训笔记7.28
  • C 游游的二进制树
  • 收发存和进销存有什么区别?
  • 小程序 账号的体验版正式版的账号信息及相关配置
  • AIGC(Artificial Intelligence Generated Content)和 Web3对比,未来发展
  • 机器学习之Boosting和AdaBoost
  • 汇编语言预定义寄存器和协处理器
  • 【前缀和】974. 和可被 K 整除的子数组
  • linux页框回收之shrink_node函数源码剖析
  • 网络运维基础问题及解答
  • 【RabbitMQ】之保证数据不丢失方案
  • 插入排序算法
  • Linux标准库API
  • 腾讯云—自动挂载云盘
  • 为Win12做准备?微软Win11 23H2将集成AI助手:GPT4免费用
  • Opencv Win10+Qt+Cmake 开发环境搭建
  • Matlab实现光伏仿真(附上30个完整仿真源码)
  • JSON.stringify()与JSON.parse()
  • neo4j教程-安装部署
  • 网络面试合集