Python中队列的定义是什么?

2024-09-30 03:26:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些堆栈的代码,如下所示:

class Stack():

  def init(self):
    self.items = []

  def isEmpty(self):
    return self.items == []

  def push(self, item):
    return self.items.append(item)

  def pop(self):
    return self.items.pop()

  def getElements(self):
    return self.items

排队的等价物是什么?你知道吗


Tags: 代码selfreturninitstack堆栈defitems
2条回答

不要像Java那样使用Python,为这样的基本adt定义类不是“Pythonic”,更不用说由于额外的包装而影响性能。你知道吗

内置的列表可以做到这一点,甚至更多。你知道吗

堆栈是后进先出(后进先出)

Using Lists as Stacks

>>> stack = []

# push, use append
>>> stack.append(1)
>>> stack.append(2)
>>> stack.append(3)

# pop
>>> stack.pop() # to get the last inserted element
>>>
3

# isEmpty
>>> if stack:
>>>     print('not empty')

队列是FIFO(先进先出)

Using Lists as Queues

>>> queue = collections.deque()

# push, use append
>>> queue.append(1)
>>> queue.append(2)
>>> queue.append(3)

# pull, use popleft to get the "first" inserted element
>>> queue.popleft()
>>>
1

队列是先进先出的,这很容易做到。你知道吗

class Stack:
    def __init__(self):
        self.items = []

    def is_empty(self):
        return self.items == []

    def push(self, item):
        return self.items.append(item)

    def pop(self):
        return self.items.pop()

    def get_elements(self):
        return self.items

class Queue:
    def __init__(self):
        self.items = []

    def is_empty(self):
        return self.items == []

    def push(self, item):
        return self.items.append(item)

    def pull(self):
        return self.items.pop(0)

    def get_elements(self):
        return self.items

stack = Stack() # items = []
stack.push("A") # items = ["A"]
stack.push("B") # items = ["A", "B"]
stack.push("C") # items = ["A", "B", "C"]
stack.pop() # items = ["A", "B"]

queue = Queue() # items = []
queue.push("A") # items = ["A"]
queue.push("B") # items = ["A", "B"]
queue.push("C") # items = ["A", "B", "C"]
queue.pull() #items = ["B", "C"]

相关问题 更多 >

    热门问题