zoukankan      html  css  js  c++  java
  • 用两个栈实现队列与用两个队列实现栈(Python实现)

    用两个栈实现队列:

     1 class QueueWithTwoStacks(object):
     2     def __init__(self):
     3         self._stack1 = []
     4         self._stack2 = []
     5 
     6     def appendTail(self,x):
     7         self._stack1.append(x)
     8 
     9     def deleteHead(self):
    10          if self._stack2:
    11              return self._stack2.pop()
    12          else:
    13              if self._stack1:
    14                 while self._stack1:
    15                     self._stack2.append(self._stack1.pop())
    16                 return self._stack2.pop()
    17              else:
    18                  return None

    用两个队列实现栈:

     1 class StackWithTwoQueues(object):
     2     def __init__(self):
     3         self._stack1 = []
     4         self._stack2 = []
     5 
     6     def push(self,x):
     7         if len(self._stack1) == 0:
     8             self._stack1.append(x)
     9         elif len(self._stack2) == 0:
    10             self._stack2.append(x)
    11         if len(self._stack2) == 1 and len(self._stack1) >= 1:
    12             while self._stack1:
    13                 self._stack2.append(self._stack1.pop(0))
    14         elif len(self._stack1) == 1 and len(self._stack2) > 1:
    15             while self._stack2:
    16                 self._stack1.append(self._stack2.pop(0))
    17 
    18     def pop(self):
    19         if self._stack1:
    20             return self._stack1.pop(0)
    21         elif self._stack2:
    22             return self._stack2.pop(0)
    23         else:
    24             return None
  • 相关阅读:
    CSP2020 游记
    React中useLayoutEffect和useEffect的区别
    Vue前后端分离跨域踩坑
    Python 正则将link 和 script 处理为 Django static形式
    BootStrap4
    单例模式
    匈牙利算法——求二部图的最大匹配的匹配数
    抽象工厂模式
    工厂方法模式
    JDK配置步骤
  • 原文地址:https://www.cnblogs.com/hwf-73/p/7705100.html
Copyright © 2011-2022 走看看