zoukankan      html  css  js  c++  java
  • 两个队列实现栈

     1 class StackWithTwoQueues:
     2     def __init__(self):
     3         self.queue1 = []
     4         self.queue2 = []
     5 
     6     def push(self, item):
     7         if len(self.queue1) == 0:
     8             self.queue1.append(item)
     9             while self.queue2:
    10                 self.queue1.append(self.queue2.pop(0))
    11         elif len(self.queue2) == 0:
    12             self.queue2.append(item)
    13             while self.queue1:
    14                 self.queue2.append(self.queue1.pop(0))
    15 
    16     def pop(self):
    17         if self.queue1:
    18             return self.queue1.pop(0)
    19         elif self.queue2:
    20             return self.queue2.pop(0)
    21         else:
    22             return None
    23 
    24 
    25 stack = StackWithTwoQueues()
    26 stack.push(1)
    27 stack.push(2)
    28 stack.push(3)
    29 stack.push(4)
    30 stack.push(5)
    31 print(stack.pop())
    32 print(stack.pop())
    33 print(stack.pop())
    34 print(stack.pop())
    35 stack.push(2)
    36 stack.push(3)
    37 stack.push(4)
    38 stack.push(5)
    39 print('=================')
    40 print(stack.pop())
    41 print(stack.pop())
    42 print(stack.pop())
    43 print(stack.pop())
    44 print(stack.pop())
    

      

  • 相关阅读:
    获取窗口句柄
    LeetCode Q136 Single Number(Medium)
    异或
    Ring3层的鼠标和键盘Hook
    Java—Applet
    Java—常用数据类型
    Java—接口与抽象类
    Java 概述
    Java—类的封装、继承与多态
    Windows—JDK安装与环境变量配置
  • 原文地址:https://www.cnblogs.com/zwb12345/p/10133351.html
Copyright © 2011-2022 走看看