4-7 Python数据结构常考题之栈与队列
Posted WinvenChang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4-7 Python数据结构常考题之栈与队列相关的知识,希望对你有一定的参考价值。
一、栈与队列
后进先出 VS
先进先出
1.熟练掌握用 python
的 list
或者 collections.deque()
实现栈和队列
2.常考题:用栈实现队列
3.leetcode implement-queue-using-stacks
用栈实现队列图示分析:
代码实现:
# leetcode 第232号 用栈实现队列
from collections import deque
class Stack:
def __init__(self):
self.items = deque()
def push(self, val):
return self.items.append(val)
def pop(self):
return self.items.pop()
def top(self):
return self.items[-1] # 返回栈顶值
def empty(self):
return len(self.items) == 0
class MyQueue:
def __init__(self):
self.s1 = Stack()
self.s2 = Stack()
def push(self, val):
self.s1.push(val)
def pop(self):
if not self.s2.empty():
return self.s2.pop()
while not self.s1.empty():
val = self.s1.pop()
self.s2.push(val)
return self.s2.pop()
def peek(self):
if not self.s2.empty():
return self.s2.top()
while not self.s1.empty():
val = self.s1.pop()
self.s2.push(val)
return self.s2.top()
def empty(self):
return self.s1.empty() and self.s2.empty()
def test():
q = MyQueue()
q.push(1)
q.push(2)
q.push(3)
print(q.pop())
print(q.pop())
print(q.pop())
test()
以上是关于4-7 Python数据结构常考题之栈与队列的主要内容,如果未能解决你的问题,请参考以下文章