思想:用A栈存储入队的数据,出队时先把A栈的数据全部pop进B栈,再对B栈进行pop操作。
Python代码如下:
# -*- coding:utf-8 -*-
class Stack(object):
# 初始化栈为空列表
def __init__(self):
self.stack = []
# 判断栈是否为空,返回布尔值
def is_empty(self):
return self.stack == []
# 返回栈顶元素
def peek(self):
return self.stack[len(self.stack) - 1]
# 返回栈的大小
def size(self):
return len(self.stack)
# 入栈
def push(self, item):
self.stack.append(item)
# 出栈
def pop(self):
return self.stack.pop()
class Solution:
stack_first = Stack()
stack_second = Stack()
def push(self, node):
self.stack_first.push(node)
def pop(self):
if self.stack_second.is_empty() == False:
return self.stack_second.pop()
else:
while self.stack_first.is_empty() == False:
self.stack_second.push(self.stack_first.pop())
return self.stack_second.pop()
本文介绍了一种使用两个栈来实现队列的方法。主要思想是使用一个栈存储入队的数据,当需要出队时,先将该栈的所有数据移至另一个栈中,再从这个栈中弹出数据。这种方法可以有效地利用栈的特性来实现队列的基本操作。
354

被折叠的 条评论
为什么被折叠?



