python的棧和隊列其實都算作一個數組,棧從最后一個元素開始推出,隊列從第一個元素開始推出
# pop(0)刪除時間復雜度O(n)
s = [] #棧
q = [] #隊列
s.append(1)#1入棧
q.append(1)#1入隊
s.pop()#出棧
q.pop(0)#出隊
由于從第一個元素刪除需要挪動數組,所以可以采用雙向鏈表代替,時間復雜度大大降低
# 時間復雜度較低的方法,這是一個雙向鏈表,可做棧和隊列
# 前后插入刪除的時間復雜度為O(1)
s = collections.deque()
a.append(1) #入棧或入隊
s.popleft() #出隊
s.popright() #出棧