數據結構與算法目錄(http://www.javashuo.com/article/p-qvigrlkr-da.html)html
線性表 是一種邏輯結構,相同數據類型的 n 個數據元素的有限序列,除第一個元素外,每一個元素有且僅有個直接前驅,除最後一個元素外,每一個元素有且僅有一個直接後繼。java
線性表具備如下特色:面試
(1) 數組和鏈表算法
選項 | 數組 | 鏈表 |
---|---|---|
讀取 | O(1) | O(n) |
插入 | O(n) | O(1) |
刪除 | O(n) | O(1) |
從上表能夠看出數組的讀取複雜度爲 O(1),插入和刪除爲 O(n),鏈表則剛好相反。即數組讀快寫慢,鏈表讀慢寫快。數組
數組的優勢:一是隨機訪問性強;二是查找速度快。
數組的缺點:一是插入和刪除效率低;二是可能浪費內存;三是內存空間要求高,必須有足夠的連續內存空間;四是數組大小固定,不能動態拓展。數據結構
鏈表的優勢:一是插入刪除速度快;二是內存利用率高,不會浪費內存;三是大小沒有固定,拓展很靈活。
鏈表的缺點:一是不能隨機查找,必須從第一個開始遍歷,查找效率低。數據結構和算法
(2) 單鏈表、雙向鏈表和循環鏈表指針
單鏈表和雙向鏈表的區別在於單鏈表的每一個節點只保存後繼節點,而雙向鏈表即保存了後繼節點也保存了前驅節點。而循環鏈表的第一個節點的指針指向最後一個節點,最後一個節點的指針指向第一個節點,循環鏈表又分爲循環單鏈表和循環雙鏈表。htm
基本概念:數組和鏈表的區別,單鏈表,雙向鏈表和循環鏈表單鏈表基本操做實戰之單鏈表反轉,單鏈表取中間值實戰之合併兩個有序鏈表面試真題:奇數位升序,偶數位降序鏈表排序面試真題:單鏈表實現歸併排序blog
天天用心記錄一點點。內容也許不重要,但習慣很重要!