一、概念
計算機(jī)儲存數(shù)據(jù)牢撼,組織數(shù)據(jù)的一種方式夏醉。
二爽锥、思維導(dǎo)圖
三、詳情
1.數(shù)組
① 概念
存儲多個相同類型的數(shù)據(jù)的集合畔柔。
② 特點
a) 數(shù)組中的數(shù)據(jù)元素可以是基本數(shù)據(jù)類型氯夷,也可以是引用數(shù)據(jù)類型;
b) 數(shù)組具有下標(biāo)释树,下標(biāo)從0開始計數(shù)肠槽,用于快速獲取數(shù)組中的數(shù)據(jù),比如a[0]奢啥,表示數(shù)組中的第一個數(shù)據(jù)秸仙;
c) 數(shù)組在創(chuàng)建的時候,需要在內(nèi)存中申請一段固定長度的內(nèi)存桩盲,如果申請的長度超過內(nèi)存剩余的長度寂纪,則容易產(chǎn)生碎片,導(dǎo)致存儲失敹慕帷捞蛋;
d) 數(shù)組便于查找和修改數(shù)據(jù),不便于增刪數(shù)據(jù)柬姚;
e) 數(shù)組分為數(shù)值數(shù)組拟杉,字符數(shù)組,指針數(shù)組量承,結(jié)構(gòu)數(shù)組等搬设;
③ 圖解
2.棧
① 概念
一種只能在表頭進(jìn)行數(shù)據(jù)插入和刪除操作的線性表穴店,又名堆棧。
② 特點
a) 按照先進(jìn)后出的原則存儲數(shù)據(jù)拿穴;
b) 棧分為順序棧和鏈?zhǔn)綏#?/p>
③ 圖解
3.隊列
① 概念
一種特殊的線性表泣洞,只能在隊頭進(jìn)行刪除數(shù)據(jù)操作,在隊尾進(jìn)行增加數(shù)據(jù)操作默色。
② 特點
a) 遵循先進(jìn)先出的原則存儲數(shù)據(jù)球凰;
b) 隊列分為順序隊列和循環(huán)隊列;
③ 圖解
4.鏈表
① 概念
一種非連續(xù)腿宰,非順序的存儲方式呕诉,通過指針將數(shù)據(jù)進(jìn)行連接的方式實現(xiàn)。
② 特點
a) 在創(chuàng)建的時候酗失,不需要指定長度义钉,可以動態(tài)調(diào)整長度,不易產(chǎn)生碎片规肴;
b) 鏈表的每個元素分為數(shù)據(jù)和指針捶闸,指針指向下一個數(shù)據(jù)的地址,從而形成串聯(lián)拖刃;
c) 便于數(shù)據(jù)增刪删壮,不便于數(shù)據(jù)查詢;
d) 鏈表分為單向鏈表兑牡,雙向鏈表央碟,循環(huán)列表;
③ 圖解
5.樹
① 概念
由一個根節(jié)點和若干個子樹構(gòu)成的集合均函。
② 特點
a) 有且僅有一個根節(jié)點亿虽;
b) 子樹之間不可以有交集;
c) 樹分為無序樹苞也,有序樹洛勉,二叉樹等;
d) 樹的深度指的是樹的有多少層如迟;
e) 一個節(jié)點的度指的是該節(jié)點下有多少個子節(jié)點收毫;
f) 二叉樹指的是每個結(jié)點的度≤2的樹。
g) 樹的遍歷方式分為三種殷勘,分別是前序遍歷(根左右)此再,中序遍歷(左根右),后序遍歷(左右根)玲销;
③ 圖解
6.圖
① 概念
由頂點的有窮非空集合和頂點之間邊的集合組成输拇。
② 特點
a) 圖分為有向圖和無向圖,區(qū)別在于邊是否有方向贤斜;
b) 圖主要涉及到的內(nèi)容是最短路徑淳附;
③ 圖解
7.堆
① 概念
用于動態(tài)分配和釋放程序所使用的對象议慰。
② 特點
a) 堆分為最小堆和最大堆,區(qū)別在于所有父節(jié)點是否大于等于其子節(jié)點奴曙,是則是最大堆,否則反之草讶;
b) 堆是一顆完全二叉樹洽糟;
③ 圖解
8.散列表
① 概念
根據(jù)key-value來進(jìn)行數(shù)據(jù)獲取的存儲數(shù)據(jù)方式。
② 特點
a) 又名哈希表堕战;
b) 便于插入坤溃,查找等操作;
c) key以數(shù)組的方式存儲在棧內(nèi)存中嘱丢,value以鏈表的方式存儲在堆空間中薪介;
d) 不同的key通過哈希函數(shù)可能得到相同的結(jié)果,這時候就發(fā)生了哈希碰撞越驻;