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

剑指offer专题2:队列和栈

  • 用两个栈模拟队列

    class CQueue {stack<int> stack1;stack<int> stack2;
    public:CQueue() {}void appendTail(int value) {stack1.push(value);}int deleteHead() {int val=-1;if(!stack2.empty()){val = stack2.top();stack2.pop();}else if(!stack1.empty()){while(!stack1.empty()){val = stack1.top();stack1.pop();stack2.push(val);}stack2.pop();}return val;}
    };
    
  • 用队列实现栈

    • 两个队列实现栈

      //每次入队一个元素都需要将这个元素放在队头
      // 时间O(n),空间O(n)
      class MyStack {queue<int> Que1;queue<int> Que2;
      public:MyStack() {}void push(int x) {Que1.push(x);while(!Que2.empty()){Que1.push(Que2.front());Que2.pop();}swap(Que1,Que2);}int pop() {int val = Que2.front();Que2.pop();return val;}int top() {return Que2.front();}bool empty() {return Que2.empty();}
      };
      
    • 一个队列实现栈

      // 一个队列实现,每次都将元素置前面
      // 时间O(n),空间O(1)
      class MyStack {queue<int> Que;
      public:MyStack() {}void push(int x) {int n = Que.size();Que.push(x);while(n--){Que.push(Que.front());Que.pop();}}int pop() {int val = Que.front();Que.pop();return val;}int top() {return Que.front();}bool empty() {return Que.empty();}
      };
      
http://www.lryc.cn/news/125031.html

相关文章:

  • pytorch入门-神经网络
  • kafka使用心得(二)
  • (二)掌握最基本的Linux服务器用法——Linux下简单的C/C++ 程序、项目编译
  • 应急响应-钓鱼邮件的处理思路溯源及其反制
  • Hadoop Hbase Hive 版本对照一览
  • Postgresql 基础使用语法
  • Qt 之 QDebug,QString
  • 【C++】面试题
  • 机器学习算法之-逻辑回归(1)
  • JAVA多线程和并发基础面试问答(翻译)
  • 正中优配:2023新股上市涨跌幅规则?新股上市涨跌幅限制为几天?
  • 如何查看线程在哪个cpu核上
  • 【Vue前端】设置标题用于SEO优化
  • maven install
  • Vue.js2+Cesium1.103.0 七、Primitive 绘制航线元素
  • Mybatis 源码 ④ :TypeHandler
  • RabbitMQ和JMeter,一个完美的组合!优化你的中间件处理方式
  • WARNING: IPv4 forwarding is disabled. Networking will not work
  • SpringBoot复习:(40)@EnableConofigurationProperties注解的用法
  • Live Market是如何做跨境客户服务的?哪些技术赋能?
  • 2023年7月京东洗衣机行业品牌销售排行榜(京东数据分析软件)
  • 【0214】postgres后端进程session退出,如何通过日志分析其会话信息
  • Rust 重载运算符|复数结构的“加减乘除”四则运算
  • Oracle删除表空间
  • Mysql - 配置Mysql主从复制-keepalived高可用-读写分离集群
  • Qt QLineEdit输入时限制,采用正则表达式
  • 【CSS】文本效果
  • Django快速上手,写一个简单的页面,快来看看吧~
  • 【Express.js】数据库初始化
  • 【数理知识】三维空间旋转矩阵的欧拉角表示法,四元数表示法,两者之间的转换,Matlab 代码实现