用两个栈实现队列(python)
题目描述
# -*- coding:utf-8 -*-
class Solution:
def __init__(self):
self.stack1 = [] #用来入队
self.stack2 = [] #用来出队
#将内容先push进一个栈stack1,
#判断stack2是否为空,空:将栈stack1中的元素pop(删除并返回数组的最后一个元素)
#并push进stack2,非空:直接出栈
#出栈时,先push进stack1先从stack2出来,即:实现了先进先出
def push(self, node):
# write code here
self.stack1.append(node) #入队
def pop(self):
# return xx
if self.stack2: #如果stack2有元素,直接出队
return self.stack2.pop()
while self.stack1: #当stack2没有元素时,将stack1的元素逆序存入到stack2中
self.stack2.append(self.stack1.pop())
return self.stack2.pop()
#include<iostream>
#include<stack>
#include<queue>
using namespace std;
class Solution
{
public:
void push(int node)
{
stack1.push(node);
}
int pop()
{
int tmp;
if (stack2.empty())
{
while (!stack1.empty())
{
tmp = stack1.top();
stack2.push(tmp);
stack1.pop();
}
}
tmp = stack2.top();
stack2.pop();
return tmp;
}
private:
stack<int> stack1;
stack<int> stack2;
};
int main()
{
Solution *s = new Solution();
for (int i = 0; i<10; i++)
{
s->push(i);
if (i == 5)
{
s->pop();
cout << s->pop() << endl;
}
} system("pause");
return 0;
}
用两个栈实现队列(python)的更多相关文章
- 两个栈实现队列 Python实现
# coding=utf-8 MAX_LENGTH = 100 SUCCESS = 1 FAIL = 0 ERROR = -1 class Queue(object): stack_fir = Non ...
- 两个栈实现队列 牛客网 程序员面试金典 C++ Python
两个栈实现队列 牛客网 程序员面试金典 C++ Python 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. C++ //run:5ms memeory ...
- 用两个栈实现队列与用两个队列实现栈(Python实现)
用两个栈实现队列: class QueueWithTwoStacks(object): def __init__(self): self._stack1 = [] self._stack2 = [] ...
- 《剑指offer》用两个栈实现队列
本题来自<剑指offer> 用两个栈实现队列 题目: 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 思路: 队列定义:先进先出 栈定义:先进后出 要 ...
- 剑指Offer面试题:6.用两个栈实现队列
一.题目:用两个栈实现队列 题目:用两个栈实现一个队列.队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能. 原文是使用 ...
- 剑指OFFER之用两个栈实现队列(九度OJ1512)
题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作.队列中的元素为int类型. 输入: 每个输入文件包含一个测试样例.对于每个测试样例,第一行输入一个n(1<=n<=100 ...
- 九度OJ 1512 用两个栈实现队列 【数据结构】
题目地址:http://ac.jobdu.com/problem.php?pid=1512 题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 输入: 每 ...
- 两个栈实现队列+两个队列实现栈----java
两个栈实现队列+两个队列实现栈----java 一.两个栈实现一个队列 思路:所有元素进stack1,然后所有出s ...
- Algorithm --> 两个栈实现队列和两个队列实现栈
两个栈实现队列和两个队列实现栈 队列(queue)先进先出的线性表:栈(stack)先进后出的线性表. 两个栈实现队列 法一思路: s1是入栈的,s2是出栈的. 入队列:直接压入s1即可: 出队列:如 ...
随机推荐
- Docker 初学
据我理解, 它最大的用途是 将我们的应用及环境整个打包, 这样如果我们的开发环境环境部署了,就不用再分别去测试/ 生产环境部署了! -- 但是, 新问题在于, 拷贝这些东西比较麻烦... Docker ...
- mybatis三(关联查询)
一.类属性 @Alias("depart")public class Department { private Integer id; private String departN ...
- MYeclipse 和 flex 环境配置
1安卓JDK 运行 jdk-6u27-windows-i586 安装于 d:/programe/java,注意JRE和JDK安装在一起 测试是否安装成功,运行,CMD,javac 回车.或者java ...
- C#并口热敏小票打印机打印位图包括芯片的写入
下面是打印所需要调用的代码: class LptControl { private string LptStr = "lpt1"; public LptControl(string ...
- leetcode1002
class Solution: def commonChars(self, A: 'List[str]') -> 'List[str]': n = len(A) if n == 1: retur ...
- Shell 编程(实例一)
创建一个脚本 admin.sh 完成如下作用: -h | --help : 提供帮助信息 --add Users : 完成用户添加 -del User | --delete : 完成用户删除 -v ...
- NativeClient开发指南
https://blog.csdn.net/column/details/24458.html
- Python运算符,基本数据类型
1,基本的运算符: 加,减,乘,除 取余(%) 取商(//) **(幂) in not in (判断是否在里面) 1.运算符 结果是值 算数运算 ...
- 打包制作 ANE
一.打包ANE 1.ios 准备文件: anePackager.bat aneswc.swc extension.xml flashAne.ane ioslib.a library.swf platf ...
- 剑指offer例题——跳台阶、变态跳台阶
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 思路: n<=0时,有0种跳法 n=1时,只有一种跳法 n=2时,有 ...