1 用列表實現(xiàn)棧的功能
棧是一種“先進后出”的數(shù)據(jù)結構殃饿,可以用python內置的列表實現(xiàn)它。棧有兩個最基本的操作:
- 入棧
stack = [3, 4, 5]
stack.append(6)
stack.append(7)
- 出棧
stack.pop()
入棧出棧.png
2 用列表實現(xiàn)隊列
隊列是一種“先入先出”的數(shù)據(jù)結構芋肠,直接用列表實現(xiàn)效率不高乎芳。列表在末端進行append和pop時效率很高,但是在首段pop很慢(因為移動隊首元素需要將后面的元素各移動一位)帖池。我們可以通過collections.deque實現(xiàn)隊列奈惑。
入隊和出隊.png
從上面的圖可以看出,用list直接實現(xiàn)隊列和用collections.deque實現(xiàn)在10萬級別的數(shù)據(jù)上有接近100倍的差距睡汹。
(圖中有個小錯誤肴甸,打印的第二行應該list time)
參考文獻:
Python-tutorial