用两个栈实现队列

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6


题目描述

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

用两个栈实现一个队列

<分析>:

入队:将元素进栈A

出队:判断栈B是否为空,如果为空,则将栈A中所有元素pop,并push进栈B,栈B出栈;

 如果不为空,栈B直接出栈。

用两个队列实现一个栈

<分析>:

入栈:将元素进队列A

出栈:判断队列A中元素的个数是否为1,如果等于1,则出队列,否则将队列A中的元素   以此出队列并放入队列B,直到队列A中的元素留下一个,然后队列A出队列,再把   队列B中的元素出队列以此放入队列A中。



class Solution
 {
 public:
     void push(int node) {
         stack1.push(node);
     }
     int pop() {
        if(stack2.empty())
        {
          while(!stack1.empty())
              {
               stack2.push(stack1.top());
              stack1.pop();
          }
        }
       int result = stack2.top();
         stack2.pop();
         return result;
     }
 private:
     stack<int> stack1;
     stack<int> stack2;
 };
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

“用两个栈实现队列” 的相关文章

c++版eclipse相关设置

自动提示: 打开终端:输入:$ gcc- v 得到类似的:gcc version 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu5) 很容易就看到你当前使用的版本了。 启动Eclipse.进入:Windows-->Prefer...

Vue.js中的会话数据怎么使用 - web开发

这篇文章主要介绍了Vue.js中的会话数据怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue.js中的会话数据怎么使用文章都会有所收获,下面我们一起来看看吧。 Vue.js中的会话概述会话是Web应用...

【C++ / Java】char数组和string的相互转换及自动转换_java怎么把char数组转换成string

一般的转换:#include<cstdio> #include<cstring> #include<string> using namespace std; char str[100]; string s; int main() { //scanf("%s"...

工作中ibatis中的连表查询及in()的使用案例

public class CbExchangeOrderArr extends BaseBean implements Serializable { /** * */ private static final long serialVersio...

Flask-SocketIO如何使用 - 编程语言

今天小编给大家分享一下Flask-SocketIO如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。 Flask-Soc...

js

window.print()功能:打印当前窗口的内容。语法:window.print()参数:无。注:调用print()方法所引发的行为就像用户单击浏览器的打印按钮。通常,这会产生一个对话框,让用户可以定制或取消打印请求。 eg:打印当前窗口的内容。<script type="tex...