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

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

牛客网上的剑指 offer的在线编程:

 

题目描述

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

 

  1. # -*- coding:utf-8 -*-

  2. class Solution:

  3. def __init__(self):

  4. self.stack1 = []

  5. self.stack2 = []

  6. def push(self, node):

  7. # write code here

  8. self.stack1.append(node)

  9. def pop(self):

  10. # return xx

  11. if self.stack2:

  12. return self.stack2.pop()

  13. elif not self.stack1:

  14. return None

  15. else:

  16. while self.stack1:

  17. self.stack2.append(self.stack1.pop())

  18. return self.stack2.pop()

 

 

 

入队时,直接压入stack1中

出队时,判断stack2是否为空,如果stack2为空,则将stack1中的元素倒入stack2中,否则直接弹出stack2中的元素

转载地址:http://uftgn.baihongyu.com/

你可能感兴趣的文章
JAVA代码—算法基础:活动安排问题(贪心算法)
查看>>
JAVA代码—算法基础:跳跃游戏(II)
查看>>
JAVA代码—算法基础:存储雨水
查看>>
测试方针和测试策略的区别
查看>>
JAVA代码—算法基础:最大数问题
查看>>
JAVA代码—算法基础:二叉树基础(基本性质)
查看>>
JAVA代码—算法基础:蚂蚁爬行问题
查看>>
JAVA代码—算法基础:水房接水问题
查看>>
JAVA代码—算法基础:学生出勤记录问题
查看>>
JAVA代码—算法基础:水壶分水的问题
查看>>
JAVA代码—算法基础:矩阵元素置零
查看>>
JAVA代码—算法基础:反转整数问题
查看>>
JAVA代码—算法基础:四平方定理问题
查看>>
JAVA代码—算法基础:字谜分组
查看>>
JAVA代码—算法基础:素数环问题
查看>>
JAVA代码—算法基础:重建行程
查看>>
JAVA代码—算法基础:DFS搜索算法伪代码
查看>>
JAVA代码—算法基础:最大连续邮资问题求解
查看>>
JAVA算法:三角形最短路径问题(动态规划求解)
查看>>
算法刷题:LeetCode中常见的动态规划题目
查看>>