#定义将数据输入队列中的操作
#利用一个栈来存储队列中的值
#stack1作为数据输入存储的栈
def PushDataToStack(element):
stack1.append(element)
#定义将数据从队列中输出的操作
#利用第二个栈来“反转”第一个栈中存储入的数据的顺序
#栈的顺序是"后进先出",然后将逻辑概念中“队列”中队尾元素
#压入第二个栈的底端,而第一个栈底部的数据,即逻辑概念中“队列”
#中的队首元素则会压入第二个栈的顶端
#这样在Pop输出逻辑队列的首元素的时候便输出了第二个栈顶的数据,即
#逻辑概念中队列的首元素
#概况之:负负得正的意思
#一个栈反序,又一个栈又反,反的反面就是正面。
def PopDataFromStack():
if len(stack1) == 0:
return None
else:
for i in range(len(stack1)):
stack2.append(stack1[i])
return stack2[len(stack2)-1]
#模拟做的队列中的数据
data = [1,2,3,4]
#模拟队列所用到的两个栈
stack1 = []
stack2 = []
#将数据Push入栈中
for i in range(len(data)):
PushDataToStack(data[i])
#pop输出逻辑"队列"队首的元素->4
print(PopDataFromStack())