1. 程式人生 > >Python佇列、棧學習

Python佇列、棧學習

本來打算學習一下python中佇列和棧的實現的。

搜尋了一下,發現python中沒有類似java中的Stack或者是Queue的結構。

在py中,完全可以通過列表來實現佇列和棧的操作。

列表的pop()操作就可以完成這個工作。

看程式碼:

上面展示了一個佇列。在列表a中,1,2,3等算是入佇列較早的元素。4、5、6、7算是晚入佇列的元素。那麼pop(0)操作每次都會從a列表中刪除第一個元素。這不正是佇列的定義嗎。

再看:

在上面的程式碼中,pop()函式每次刪除列表的最後一個元素。這也正是棧的定義。

-----------------------------------------------

但是要注意的是,這裡使用list作為棧和佇列,是沒有進行同步的。如果有多個執行緒同時訪問,那麼就會出現併發的問題。

關於多執行緒併發,可以參考這裡。在文章最後的例子中,使用到了Queue來作為多個執行緒處理資料的資料結構。保證了正確的同步處理。