線性結構(順序儲存和鏈式儲存)和非線性結構的特點及區別
1. 線性結構
特點:除第一個元素只有一個“後繼”和最後一個元素只有一個“前驅”,其它每個元素只有一個“前驅”元素和一個“後繼”元素。
常見的線性結構有: 陣列、連結串列、棧以及佇列。注意:棧和佇列本身不是一種資料結構,可通過陣列或連結串列實現。
1.1 線性結構又分為順序儲存和鏈式儲存
線性結構又分為順序儲存和鏈式儲存,順序儲存:各個元素儲存的地址空間連續,邏輯相鄰的元素在實體記憶體中也相鄰,如陣列;
鏈式儲存:各個元素儲存在任意的地址空間,邏輯相鄰的元素在實體記憶體中沒有聯絡,如連結串列。
1.2 順序儲存和鏈式儲存的區別
1.2.1 順序儲存
優點:① 因為各個元素是連續儲存,而且當元素型別一致時佔用空間大小一致,所以可以直接通過首元素地址計算
某個元素的記憶體地址,從而訪問特定元素效率很高
② 對於有序陣列,還可以通過二分查詢提高元素查詢的速度
缺點:① 由於順序儲存的特點,所以在刪除或插入元素後需要移動其它元素使得整體的儲存空間依然是連續的,
所以刪除、插入元素效率低,如下圖。
② 由於元素儲存空間連續,所以當有大資料時,較難分配一塊連續的大記憶體空間。
1.2.2 鏈式儲存
優點:① 由於鏈式儲存的特點,刪除或插入節點很方便,不需要移動其它元素,改變元素“連線”關係即可,
所以刪除、插入元素效率高,如下圖。
缺點:① 因為儲存的任意性,只能通過前一個元素訪問下一個元素,每一次訪問元素都從頭節點開始遍歷,
所以訪問特定元素或查詢元素效率低。
2. 非線性結構
特點:每個元素可以和多個元素“連線”。
常見的非線性結構:二維陣列、樹和圖。
相關文章
- 線性表之順序儲存結構
- 11 線性表的順序儲存結構
- 線性表之鏈式儲存結構
- 線性表順序儲存優缺點,線性連結串列的優缺點
- 串的順序儲存結構
- 資料結構(線性錶鏈式儲存)的幾個基本操作資料結構
- 從零開始學資料結構和演算法(二)線性表的鏈式儲存結構資料結構演算法
- 佇列的順序儲存結構佇列
- 資料結構線性表的鏈式儲存結構(單連結串列)的表示及其基本操作資料結構
- 資料結構知否知否系列之 — 線性表的順序與鏈式儲存篇(8000 多字長資料結構
- 線性表的順序儲存C++程式碼C++
- 【資料結構】二叉樹(順序儲存、鏈式儲存)的JAVA程式碼實現資料結構二叉樹Java
- 佇列的鏈式儲存結構佇列
- 資料結構 - 線性表 - 順序表資料結構
- 線性表的順序儲存C++程式碼實現C++
- C#資料結構-二叉樹-順序儲存結構C#資料結構二叉樹
- 作用域、連結屬性和儲存型別型別
- 【資料結構——圖和圖的儲存結構】資料結構
- 考研資料結構-線性表-順序表資料結構
- 儲存結構
- 資料結構:順序結構和鏈式結構的資料型別定義資料結構資料型別
- SAP儲存地點結構
- 【PHP資料結構】圖的概念和儲存結構PHP資料結構
- 佇列的鏈式儲存結構的實現佇列
- Redis儲存結構以及儲存格式Redis
- 資料結構:線性表的順序實現2.2資料結構
- MySql體系結構和儲存引擎MySql儲存引擎
- JanusGraph -- 儲存結構
- CentOS 儲存結構CentOS
- 圖的儲存結構
- 線性結構-線性表
- 線性表的順序儲存-順序表,對“突然的自我”的否定,對自我的揚棄
- 第3章 順序表的鏈式儲存
- 利用順序儲存結構實現雙端佇列的入隊和出隊操作佇列
- 小議lob欄位結構和儲存
- 列定義的順序和列儲存的順序
- MySQL的物理儲存結構和session過程MySqlSession
- 利用泛型模擬棧結構實現內部鏈式儲存結構泛型