佇列 棧與鍊錶

2021-08-20 20:28:52 字數 752 閱讀 1593

佇列,顧名思義,就像排隊一樣,我們只能在隊首刪除,在隊尾增加。佇列是一種先進先出(fifo)的資料結構。

參考:佇列的解析與c語言實現

棧,可以理解為乙個儲物的地方,且只有乙個出口,先放進去的東西最後才能拿出來(因為被後面放進去的東西擋住了)。棧作為一種

資料結構

,是一種

只能在一端進行插入和刪除操作

的特殊線性表

鍊錶是一種物理

儲存單元

上非連續、非順序的

儲存結構

,資料元素

的邏輯順序是通過鍊錶中的

指標鏈結次序實現的。鍊錶由一系列結點(鍊錶中每乙個元素稱為結點)組成,結點可以在執行時動態生成。每個結點包括兩個部分:乙個是儲存

資料元素

的資料域,另乙個是儲存下乙個結點位址的

指標域。 相比於

線性表順序結構

,操作複雜。由於不必須按順序儲存,鍊錶在插入的時候可以達到o(1)的複雜度,比另一種線性表順序表快得多,但是查詢乙個節點或者訪問特定編號的節點則需要o(n)的時間,而線性表和順序表相應的時間複雜度分別是o(logn)和o(1)。

除了使用指標來實現鍊錶(正統的方式),還可以使用陣列來模擬鍊錶。如截屏二所示。

佇列 棧與鍊錶

一 佇列 佇列,顧名思義,就像排隊一樣,我們只能在隊首刪除,在隊尾增加。佇列是一種先進先出 fifo 的資料結構。參考 佇列的解析與c語言實現三 鍊錶 鍊錶是一種物理儲存單元上非連續 非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的。鍊錶由一系列結點 鍊錶中每乙個元素稱為結點 組...

棧 佇列 鍊錶

includestruct queue int main while q.head includeint main maxvalue temp maxvalue temp maxvalue temp 0 for int j 1 j len j maxvalue temp maxvalue temp ...

鍊錶棧與佇列的實現

link queue from squeue import queueerror class node def init self,val,next none self.val val self.next next class lqueue def init self self.rear node ...