Basic鍊錶與佇列的區別

2021-09-20 09:29:52 字數 563 閱讀 9882

鍊錶是一種資料的儲存方式(相對應的是順序儲存結構),儲存的資料在記憶體中不連續的,用指針對資料進行訪問; 

佇列是一種資料結構,其特點是先進先出,後進後出;

佇列的儲存方式可以使用線性表進行儲存,也可以使用鍊錶進行儲存

一、佇列

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

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

三、鍊錶

鍊錶是一種物理儲存單元上非連續、非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的。鍊錶由一系列結點(鍊錶中每乙個元素稱為結點)組成,結點可以在執行時動態生成。每個結點包括兩個部分:乙個是儲存資料元素的資料域,另乙個是儲存下乙個結點位址的指標域。 相比於線性表順序結構,操作複雜。由於不必須按順序儲存,鍊錶在插入的時候可以達到o(1)的複雜度,比另一種線性表順序表快得多,但是查詢乙個節點或者訪問特定編號的節點則需要o(n)的時間,而線性表和順序表相應的時間複雜度分別是o(logn)和o(1)。

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

棧 佇列與鍊錶的區別

占用的記憶體空間 鍊錶存放的記憶體空間可以是連續的,也可以是不連續的,陣列則是連續的一段記憶體空間。一般情況下存放相同多的資料陣列占用較小的記憶體,而鍊錶還需要存放其前驅和後繼的空間。長度的可變性 鍊錶的長度是按實際需要可以伸縮的,而陣列的長度是在定義時要給定的,如果存放的資料個數超過了陣列的初始大...

鍊錶 佇列和棧的區別

鍊錶 佇列和棧的區別 鍊錶,佇列和棧都是資料結構的一種。sartaj sahni 在他的 資料結構 演算法與應用 一書中稱 資料結構是資料物件,以及存在於該物件的例項和組成例項的資料元素之間的各種聯絡。這些聯絡可以通過定義相關的函式來給出。他將資料物件 data object 定義為 乙個資料物件是...

佇列 棧與鍊錶

佇列,顧名思義,就像排隊一樣,我們只能在隊首刪除,在隊尾增加。佇列是一種先進先出 fifo 的資料結構。參考 佇列的解析與c語言實現 棧,可以理解為乙個儲物的地方,且只有乙個出口,先放進去的東西最後才能拿出來 因為被後面放進去的東西擋住了 棧作為一種 資料結構 是一種 只能在一端進行插入和刪除操作 ...