1. 程式人生 > >python佇列和棧操作

python佇列和棧操作

>>> stack = [3, 4, 5]
>>> stack.append(6)
>>> stack.append(7)
>>> stack
[3, 4, 5, 6, 7]
>>> stack.pop()
7
>>> stack
[3, 4, 5, 6]
>>> stack.pop()
6
>>> stack.pop()
5
>>> stack
[3, 4]

佇列

>>> from collections import
deque >>> queue = deque(["Eric", "John", "Michael"]) >>> queue.append("Terry") # Terry arrives >>> queue.append("Graham") # Graham arrives >>> queue.popleft() # The first to arrive now leaves 'Eric' >>> queue.popleft() # The second to arrive now leaves
'John' >>> queue # Remaining queue in order of arrival deque(['Michael', 'Terry', 'Graham'])

使用兩個棧實現一個佇列 插入:插入到stack1 刪除:如果stack2為空,將stack1pop之後push到stack2,如果stack2不為空,則直接popstack2

class Solution:
    def __init__(self):
        self.stack1 = []
        self.stack2 =
[] def push(self, node): self.stack1.append(node) def pop(self): if self.stack2 == []: while self.stack1 != []: self.stack2.append(self.stack1.pop()) return self.stack2.pop() sol = Solution() sol.push(1) sol.push(2) print(sol.pop()) sol.push(3) print(sol.pop()) print(sol.pop())

輸出:

1
2
3