class Stack():
def __init__(self):
self.items = []
def empty(self):
return len(self.items) == 0
def size(self):
return len(self.items)
def peek(self):
if not self.empty():
return self.items[-1]
else:
return None
def pop(self):
if len(self.items) > 0:
return self.items.pop()
else:
return None
def push(self,item):
self.items.append(item)
class MyStack:
def __init__(self):
#用来存储栈中元素
self.A = Stack()
#用来存储当前栈中最小元素
self.B = Stack()
def push(self,data):
self.A.push(data)
def pop(self):
if self.B.empty():
while not self.A.empty():
self.B.push(self.A.peek())
self.A.pop()
fist = self.B.peek()
self.B.pop()
return fist
if __name__ == '__main__':
stack = MyStack()
stack.push(1)
stack.push(2)
print(f'队列首元素{stack.pop()}')
print(f'队列首元素{stack.pop()}')
python算法:如何用两个栈模拟队列操作
猜你喜欢
转载自blog.csdn.net/weixin_43697214/article/details/115145182
今日推荐
周排行