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

算法知识点————两个栈实现一个队列

思路:当队列入队的时候,将元素入栈(instack),当队列出栈的时候,先判断栈(outstack)是否为空,如果为空,则将栈(instack)的元素全部放入栈(outstack)中,然后取出栈(outstack)顶元素;如果栈(outstack)不为空,则直接取出栈(outstack)顶元素。

class MyQueue {
private: stack<int> instack,outstack;void inout(){while(!instack.empty()){outstack.push(instack.top());instack.pop();}}public:MyQueue() {}void push(int x) {instack.push(x);}int pop() {if(outstack.empty()){inout()}int x = outstack.top();outstack.pop();return x;}int peek() {if(outstack.empty()){inout()}return outstack.top();}bool empty() {return instack.empty() && outstack.empty();}
};/*** Your MyQueue object will be instantiated and called as such:* MyQueue* obj = new MyQueue();* obj->push(x);* int param_2 = obj->pop();* int param_3 = obj->peek();* bool param_4 = obj->empty();*/
http://www.lryc.cn/news/433714.html

相关文章:

  • 并行程序设计基础——并行I/O(1)
  • 在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲
  • JVM系列(十) -垃圾收集器介绍
  • 项目实战 ---- 商用落地视频搜索系统(9)---UI与上层service的交互优化
  • 媒体服务器软件BUG说明及改进方案
  • Gitlab修改已push的历史commit信息
  • [Linux入门]---进程替换
  • Java语言程序设计基础篇_编程练习题*18.9 (以逆序输出一个字符串中的字符)
  • IT英语每日积累
  • QML学习二:Qt启用qml文件实时预览编辑,以及打印日志到控制台
  • JVM面试真题总结(四)
  • P1352 没有上司的舞会
  • JAVA智听未来一站式有声阅读平台听书系统小程序源码
  • 2024 第七届“巅峰极客”网络安全技能挑战赛初赛 Web方向 题解WirteUp
  • 论文阅读笔记《面向集群协同的两点相对定位技术》
  • RK3566/RK3568 Android 11 无操作自动隐藏导航栏、底部上拉显示导航栏
  • 四、Django模型
  • Telephony SS
  • 【软考】希尔排序算法分析
  • C++(一)----C++基础
  • C 语言面试题大汇总之华为面试题
  • Java:面向对象
  • 【区块链 + 基层治理】腾讯未来社区:区块链业主决策系统 | FISCO BCOS应用案例
  • 【Rust练习】13.数组
  • 直流负载技术介绍
  • FPGA低功耗设计
  • Python Opencv: 基于颜色提取的印章分割
  • Codeforces Round 970 (Div. 3)(ABCDEF)
  • springboot基于ssm+Jsp的人才招聘网站系统的设计与实现 jw2cs
  • 高质量共建“一带一路”!苏州金龙助力非洲交通驶向共同繁荣之旅