Basic链表与队列的区别
生活随笔
收集整理的這篇文章主要介紹了
Basic链表与队列的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
區別?
鏈表是一種數據的存儲方式(相對應的是順序存儲結構),保存的數據在內存中不連續的,用指針對數據進行訪問; 隊列是一種數據結構,其特點是先進先出,后進后出; 隊列的存儲方式可以使用線性表進行存儲,也可以使用鏈表進行存儲定義
一、隊列
????隊列,顧名思義,就像排隊一樣,我們只能在隊首刪除,在隊尾增加。隊列是一種先進先出(FIFO)的數據結構。
????參考:隊列的解析與C語言實現
二、棧
??????棧,可以理解為一個儲物的地方,且只有一個出口,先放進去的東西最后才能拿出來(因為被后面放進去的東西擋住了)。棧作為一種數據結構,是一種只能在一端進行插入和刪除操作的特殊線性表。它按照先進后出(FILO)的原則存儲數據,先進入的數據被壓入棧底,最后的數據在棧頂,需要讀數據的時候從棧頂開始彈出數據(最后一個數據被第一個讀出來)。參考:百度百科:棧和啊哈算法之棧
三、鏈表
????????鏈表是一種物理存儲單元上非連續、非順序的存儲結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。鏈表由一系列結點(鏈表中每一個元素稱為結點)組成,結點可以在運行時動態生成。每個結點包括兩個部分:一個是存儲數據元素的數據域,另一個是存儲下一個結點地址的指針域。 相比于線性表順序結構,操作復雜。由于不必須按順序存儲,鏈表在插入的時候可以達到O(1)的復雜度,比另一種線性表順序表快得多,但是查找一個節點或者訪問特定編號的節點則需要O(n)的時間,而線性表和順序表相應的時間復雜度分別是O(logn)和O(1)。
???????除了使用指針來實現鏈表(正統的方式),還可以使用數組來模擬鏈表。如截圖二所示。
?
總結
以上是生活随笔為你收集整理的Basic链表与队列的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 支付宝转账最多能转多少
- 下一篇: 特斯拉道歉 终于顶不住舆论的压力了