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

剑指offer——队列栈:用两个栈实现队列

只向一个栈内添加元素

添加的时候,只向一个栈内添加元素

弹出的时候,先把1中的元素全部倒入2中,这样保证栈2的顺序是和队列的顺序一样的

                     全部倒入后,检查栈2是否为空,从而判断原来的栈1是否没有元素

                     然后如果是现在栈2不为空,就说明添加的时候是:加加减加减,也就是原本的栈2内的元素出来的顺序都在当前要添加的元素之前,所以,先把栈2顶上的元素弹出

class Solution
{
public:void push(int node) {//添加的时候,只向一个栈内添加元素stack1.push(node);}int pop() {//如果栈2内的元素为空,可以先把栈1中的元素全部倒进2里if(stack2.empty()){while(!stack1.empty()){stack2.push(stack1.top());stack1.pop();}}//把栈1中的所有元素全部倒进2中后,如果2还是空的,就证明原来的栈1是空的,说明没有元素if(stack2.empty()){return -1;}//如果现在栈2不为空,则弹出的时候应该弹出的是栈顶元素int ans=stack2.top();stack2.pop();return ans;}private:stack<int> stack1;stack<int> stack2;
};
http://www.dtcms.com/a/276724.html

相关文章:

  • 模型驱动的架构MDA的案例
  • 如何配置pip使用国内镜像?
  • 2D转换综合写法顺序,以及注意事项
  • 【理念●体系】模板规范篇:打造可标准化复用的 AI 项目骨架
  • 68 指针的减法操作
  • C语言文件读操作详解:使用fgets函数实现安全的按行读取
  • 在YOLO-World中集成DeformConv、CBAM和Cross-Modal Attention模块的技术报告
  • 进制转换算法详解及应用
  • 红旗新能源车:驾驭梦想,驶向未来
  • TDengine 使用最佳实践(1)
  • 系统性能评估方法深度解析:从经典到现代
  • 【C/C++】编译期计算能力概述
  • 《汇编语言:基于X86处理器》第7章 整数运算(3)
  • Noting
  • L1正则化 VS L2正则化
  • 全连接网络 和卷积神经网络
  • 《Java Web程序设计》实验报告一 Java Web环境配置
  • Cypress与多语言后端集成指南
  • C++——类和对象的相关知识点
  • 复习笔记 31
  • RHCSA(2)
  • STM32--USART串口通信的应用(第一节串口通信的概念)
  • docker网络与数据持久化
  • SolidWorks并发不足频出,浮动许可还能怎么优化?
  • Python 中 enumerate(s) 和 range() 的对比
  • 博途多重背景、参数实例--(二)
  • 分布式系统高可用性设计 - 缓存策略与数据同步机制
  • 飞算JavaAI:重新定义Java开发效率的智能引擎
  • Cell2location maps fine-grained cell types in spatial transcriptomics 文章解析
  • 基于Python Keras 实践大全