美文网首页
3. 数据结构与算法:堆栈&队列

3. 数据结构与算法:堆栈&队列

作者: sszhang | 来源:发表于2018-06-05 18:02 被阅读0次

两个栈 Stack 实现一个队列 Queue

入队:元素进栈A
出队:先判断栈B是否为空,为空则将栈A中的元素pop出来并push进栈B,再将栈B的第一个元素pop出栈,如不为空则直接从栈B中pop第一个元素出栈

class newQueue():
  def __init__(self):
    self.stack_A = Stack()
    self.stack_B = Stack()

  def enqueue(self, node):
    self.stack_A.push(node)

  def dequeue(self):
    if self.stack_A = = [ ]
      return None
    if self.stack_B =[ ]
      for i in range(len(self.stack_A)):
          self.stack_B.push(stack_A.pop())
     return self.stack_B.pop()

两个队列 Queue 实现一个栈 Stack

入队:元素队列A
出队:判断如果队A只有一个元素,则直接出队。否则,把队A中的元素出队并入队B,直到队A中只有一个元素,再直接出队

class newStack():
  def __init__(self):
    self.queue_A = Queue()
    self.queue_B = Queue()

  def push(self, node):
    self.queue_A.enque(node)

  def pop(self):
    if self.queue_A = = [ ]
      return None
    while len(queue_A)>1
      queue_B.enqueue(queue_A.dequeue())
      self.queue_A, self.queue_B = self.queue_B, self.queue_A
    return queue_B.dequeue()

相关文章

  • 3. 数据结构与算法:堆栈&队列

    两个栈 Stack 实现一个队列 Queue 入队:元素进栈A出队:先判断栈B是否为空,为空则将栈A中的元素pop...

  • 在Python中实现两个堆栈的队列

    在Python中实现两个堆栈的队列。数据结构了解堆栈和队列。然后用两个堆栈实现一个队列。堆栈和队列都是列表。但它们...

  • 数据结构与算法 (队列实现篇)

    数据结构与算法 (队列实现篇) 在数据结构与算法中,队列(queue)是一种受限的线性储存结构,特殊之处在于它只允...

  • 数据结构与算法 (栈实现篇)

    数据结构与算法 (栈实现篇) 在数据结构与算法中,栈(stack)又名堆栈,栈是一种受限的线性储存结构,只允许在一...

  • 终极算法整理

    我自己给算法的分类有这么几种 数据结构类的数组 : 变种太多二维数组堆栈队列HashMap树链表其他:trie,跳...

  • 排序算法

    什么是算法 书籍推荐 《数据结构与算法分析》 表、栈和队列 树 散列(hash) 优先队列(堆) 排序 定义 问题...

  • day14-09-集合框架(LinkList练习)

    使用LinkedList模拟一个堆栈或者队列数据结构。 堆栈:先进后出 如同一个杯子队列:先进先出 First i...

  • 集合相关数据结构与算法

    队列 栈数据结构 比较算法 Collections Collection与Collections的区别?Colle...

  • 堆栈

    #什么是“堆”,"栈","堆栈","队列",它们的区别 如果你学过数据结构,就一定会遇到“堆”,"栈","堆栈",...

  • 数据结构与算法学习开篇

    数据结构与算法知识图谱 20个最常用的、最基础数据结构与算法 10个数据结构:数组、链表、栈、队列、散列表、二叉树...

网友评论

      本文标题:3. 数据结构与算法:堆栈&队列

      本文链接:https://www.haomeiwen.com/subject/xucmsftx.html