1.先说一下栈和队列的定义(自己的理解不做深入的解析):栈是一个只能在一端进行删除和插入操作的线性表,它是一个先进后出。队列也是一个线性表,但是其只能在表的前端进行删除操作,在表的后端进行插入操作,它是一个先进先出。
2.下面就用python代码来实现两个栈实现一个队列功能!
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()
return self.stack2.pop()
总结:其实这个很简单,运用栈的先进后出的特点,将数据先加入第一个栈,然后通过在第二个栈中添加第一个栈删除的数据,就实现了数据的先进先出!