博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用两个栈实现队列
阅读量:5035 次
发布时间:2019-06-12

本文共 710 字,大约阅读时间需要 2 分钟。

题目描述

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
 
解题思路:因为栈和队列是一个相反的操作,所以两次相反就是相同的操作,举个例子:
栈s1 push4个元素:1 2 3 4;如果一次出栈是 :4 3 2 1
队列s2 push4个元素:1 2 3 4;如果依次出队列是:1 2 3 4
这个时候如果将栈s1pop的元素再入栈再出栈呢?
假设将栈s1pop的元素push到栈s2就是: 4 3 2 1
如果栈s2再pop就是:1 2 3 4
注意:如果出一个s1的变化和s2的变化
手工模拟步骤如下图所示:
 

代码如下:

class Solution{public:    void push(int node) {    s1.push(node);            }    int pop() {    while(!s1.empty()){     s2.push(s1.top());     s1.pop();       }int temp=s2.top();    s2.pop();    while(!s2.empty()){        s1.push(s2.top());        s2.pop();    }        return temp;        }private:    stack
s1; stack
s2;};

 

转载于:https://www.cnblogs.com/cstdio1/p/11232809.html

你可能感兴趣的文章
PHP preg_match正则表达式的使用
查看>>
Permutation Recovery
查看>>
WPF,Silverlight与XAML读书笔记第二十 - 控件之二 – 内容控件(命令控件)
查看>>
js补充之作用域
查看>>
12.4号
查看>>
安装JMeter
查看>>
虚方法与抽象方法有什么区别
查看>>
20181126-java-面试知识-收集
查看>>
POJ-3295 Tautology 枚举+DFS
查看>>
KRPano多屏互动原理
查看>>
KRPano动态热点专用素材图50多个,加动态热点使用方法
查看>>
yii模型ar中备忘
查看>>
C#线程入门
查看>>
CSS清除浮动方法
查看>>
JVM内存回收机制简述
查看>>
洛咕 P2480 [SDOI2010]古代猪文
查看>>
js-创建对象的几种方式
查看>>
JDK JRE Java虚拟机的关系
查看>>
2018.11.20
查看>>
word20161215
查看>>