#定義將數據輸入隊列中的操作
#利用一個棧來存儲隊列中的值
#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())