Python用两个栈实现队列

本文阅读 1 分钟
首页 Python笔记 正文

需要两个栈Stack1和Stack2,push的时候直接push进Stack1。pop需要判断Stack1和Stack2中元素的情况,Stack1空的话,直接从Stack2 pop,Stack1不空的话,把Stack1的元素push进入Stack2,然后pop Stack2的值。

  1. ''
  2. 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
  3. '''
  4. # -*- coding:utf-8 -*-
  5. class Solution:
  6. def __init__(self):
  7. self.stack1 = []
  8. self.stack2 = []
  9. def push(self, node):
  10. self.stack1.append(node)
  11. def pop(self):
  12. if len(self.stack2) == 0 and len(self.stack1) == 0:
  13. return
  14. elif len(self.stack2) == 0:
  15. while len(self.stack1) > 0:
  16. self.stack2.append(self.stack1.pop())
  17. return self.stack2.pop()
  18. P = Solution()
  19. P.push(10)
  20. P.push(11)
  21. P.push(12)
  22. print(P.pop())
  23. P.push(13)
  24. print(P.pop())
  25. print(P.pop())
  26. print(P.pop())
  27. print(P.pop())
解压密码: detechn或detechn.com

免责声明

本站所有资源出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。

本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户自行鉴别,做一个有主见和判断力的用户。

本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。

Python重建二叉树
« 上一篇 01-21
Python旋转数组的最小数字
下一篇 » 01-21

发表评论

惪特博客
  • 文章总数:
    18497 篇
  • 评论总数:
    53345 条
  • 标签总数:
    8873 个
  • 总浏览量:
    22970690 次
  • 最后更新:
    3月27日

最多点赞

随便看看

标签TAG