数据结构基础:线性表学习笔记
? ? ? ?? ? ? ?
1、線性表定義
線性表是指n個(gè)元素的有限序列(n>=0),通常用(a1,a2,a3...,an),來表示。
2、線性表特點(diǎn)
1、存在唯一的一個(gè)首元素
2、存在唯一一個(gè)尾元素
3、除第首元素外,每個(gè)元素只有一個(gè)直接前驅(qū)。
4、除尾元素外,每個(gè)元素只有一個(gè)直接后繼。
3、線性表的存儲(chǔ)結(jié)構(gòu)
3.1 線性表的順序存儲(chǔ)
定義:線性表的順序存儲(chǔ)是指用一組連續(xù)的存儲(chǔ)單元依次存儲(chǔ)線性表中的數(shù)據(jù)元素,從而使得邏輯上相鄰的兩個(gè)元素在物理存儲(chǔ)位置上也相鄰。這種存儲(chǔ)方式無需占用額外的存儲(chǔ)空間來存儲(chǔ)。
優(yōu)點(diǎn):可以隨機(jī)讀取 表中的元素。按照序號檢索元素比較快。
缺點(diǎn):插入、刪除元素都需要移動(dòng)元素。
3.2 線性表的鏈?zhǔn)酱鎯?chǔ)
3.2.1 線性表的概念
定義:是節(jié)點(diǎn)來存儲(chǔ)數(shù)據(jù)元素,元素節(jié)點(diǎn)的地址可以連續(xù),也可以不連續(xù)。因此節(jié)點(diǎn)之間的元素的存儲(chǔ)必須有邏輯關(guān)系。
元素節(jié)點(diǎn):包含數(shù)據(jù)域、指針域(存儲(chǔ)該元素的直接前驅(qū)、直接后繼的位置信息)
優(yōu)點(diǎn):插入和刪除操作不需要移動(dòng)元素。、
缺點(diǎn):只能順序的讀取元素,不能隨機(jī)讀取。
3.2.2 線性鏈表的分類
單鏈表:最后一個(gè)節(jié)點(diǎn)指針域?yàn)閚ull
循環(huán)鏈表:最后一個(gè)指針域?yàn)橹赶虻谝粋€(gè)節(jié)點(diǎn)。因此循環(huán)鏈表可以從任意節(jié)點(diǎn)開始遍歷整個(gè)鏈表。
雙向鏈表:每個(gè)節(jié)點(diǎn)包含兩個(gè)指針,分別指明當(dāng)前元素的直接前驅(qū)和直接后繼的存儲(chǔ)信息。可以從兩個(gè)方向遍歷鏈表中的元素。
3.3 ?線性表順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)比較
性能方面 | 比較內(nèi)容 | 順序存儲(chǔ) | 鏈?zhǔn)酱鎯?chǔ) |
空間性能 | 存儲(chǔ)密度 | =1 ?更優(yōu) | <1 |
存儲(chǔ)容量 | 初始化確定 | 動(dòng)態(tài)分配,更優(yōu) | |
查詢算法 | O(n/2) | O(n/2) | |
讀取算法 | O(1) 更優(yōu) | O([n+1]/2),范圍1~n | |
插入算法 | O([n]/2),范圍0~n | O(1) 更優(yōu) | |
刪除算法 | O([n-1]/2) | O(1) 更優(yōu) |
?
?
IT技術(shù)分享社區(qū)
個(gè)人博客網(wǎng)站:https://programmerblog.xyz
文章推薦程序員效率:畫流程圖常用的工具程序員效率:整理常用的在線筆記軟件遠(yuǎn)程辦公:常用的遠(yuǎn)程協(xié)助軟件,你都知道嗎?51單片機(jī)程序下載、ISP及串口基礎(chǔ)知識(shí)硬件:斷路器、接觸器、繼電器基礎(chǔ)知識(shí)
總結(jié)
以上是生活随笔為你收集整理的数据结构基础:线性表学习笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: finereport 格式化金额函数_帆
- 下一篇: 世上最齐全黑链(隐藏链接)代码大全