更新時(shí)間:2020-08-31 08:32:28 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1501次
近期有不少朋友在問(wèn)小編,哪有數(shù)據(jù)結(jié)構(gòu)與算法視頻下載?里面有哪些知識(shí)點(diǎn)?
動(dòng)力節(jié)點(diǎn)就推出了數(shù)據(jù)結(jié)構(gòu)與算法視頻,數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合,數(shù)據(jù)結(jié)構(gòu)也是計(jì)算機(jī)存儲(chǔ)、組織數(shù)據(jù)的方式,通常情況下,良好的的數(shù)據(jù)結(jié)構(gòu)可以帶來(lái)更高的運(yùn)行或者存儲(chǔ)效率,往往與性能、優(yōu)化話題相關(guān) 。
1. 鏈表是一種由節(jié)點(diǎn)組成的線性數(shù)據(jù)集合,每個(gè)節(jié)點(diǎn)通過(guò)指針指向下一個(gè)節(jié)點(diǎn)。它是 一種由節(jié)點(diǎn)組成,并能用于表示序列的數(shù)據(jù)結(jié)構(gòu)。
2. 單鏈表:每個(gè)節(jié)點(diǎn)僅指向下一個(gè)節(jié)點(diǎn),最后一個(gè)節(jié)點(diǎn)指向空
3. 雙鏈表:每個(gè)節(jié)點(diǎn)有兩個(gè)指針p,n。p指向前一個(gè)節(jié)點(diǎn),n指向下一個(gè)節(jié)點(diǎn),最后一個(gè) 節(jié)點(diǎn)指向空。
4. 循環(huán)列表:每個(gè)節(jié)點(diǎn)指向下一個(gè)節(jié)點(diǎn),最后一個(gè)節(jié)點(diǎn)指向第一個(gè)節(jié)點(diǎn)。
5. 時(shí)間復(fù)雜度:索引:O(n),查找:O(n),插入:O(1),刪除:O(1)
1. 棧是一個(gè)元素集合,支持兩個(gè)基本操作:push用于將元素壓入棧,pop用于刪除棧頂元素。
2. 后進(jìn)先出的數(shù)據(jù)結(jié)構(gòu)
3. 時(shí)間復(fù)雜度:同上
1. 隊(duì)列是一個(gè)元素集合,支持兩種基本操作:enqueue用于添加一個(gè)元素到隊(duì)列, dequeue用于刪除
2. 先進(jìn)先出的數(shù)據(jù)結(jié)構(gòu)
3. 時(shí)間復(fù)雜度:同上
1. 樹是無(wú)向的聯(lián)通的無(wú)環(huán)圖
2. 二叉樹:是一個(gè)樹形數(shù)據(jù)結(jié)構(gòu),每個(gè)節(jié)點(diǎn)最多可以有兩個(gè)子節(jié)點(diǎn),稱為左子節(jié)點(diǎn)和 右子節(jié)點(diǎn)。
3. 滿二叉樹:二叉樹中每個(gè)節(jié)點(diǎn)有0或者2個(gè)子節(jié)點(diǎn)。
4. 完美二叉樹:二叉樹中每個(gè)節(jié)點(diǎn)有兩個(gè)子節(jié)點(diǎn),并且所有的葉子節(jié)點(diǎn)的深度是一樣 的
5. 完全二叉樹;二叉樹中除最后一層外,其他各層的節(jié)點(diǎn)數(shù)均達(dá)到最大值,最后一層 的節(jié)點(diǎn)都連續(xù)集中在最左邊。
1. 是一種二叉樹,其任何節(jié)點(diǎn)都大于等于左子樹中的值,小于等于右子樹中的值。
2. 時(shí)間復(fù)雜度:索引查找插入刪除均為O(log(n))
1. 又稱為基數(shù)樹或前綴樹,是一種用于存儲(chǔ)鍵值為字符串的動(dòng)態(tài)集合或關(guān)聯(lián)數(shù)組的查 找樹。樹中的節(jié)點(diǎn)并不直接存儲(chǔ)關(guān)聯(lián)鍵值,而是該節(jié)點(diǎn)在樹中的位置決定了其關(guān)聯(lián) 鍵值,一個(gè)節(jié)點(diǎn)的所有子節(jié)點(diǎn)都有相同的前綴,根節(jié)點(diǎn)則是空字符串。
1. 又稱為二進(jìn)制索引樹,其概念上是樹,但以數(shù)組實(shí)現(xiàn),數(shù)組中的下標(biāo)代表樹中的節(jié) 點(diǎn),每個(gè)節(jié)點(diǎn)的父節(jié)點(diǎn)或子節(jié)點(diǎn)的下標(biāo)可以通過(guò)運(yùn)算獲得。數(shù)組中的 每個(gè)元素都 包含了預(yù)計(jì)算的區(qū)間值之和,在整個(gè)樹更新的過(guò)程中,這些計(jì)算的值也同樣會(huì)被更 新。
2. 時(shí)間復(fù)雜度:區(qū)間求和:O(log(n)),更新:O(log(n))
1. 線段樹是用于存儲(chǔ)區(qū)間和線段的樹形數(shù)據(jù)結(jié)構(gòu)。它允許查找一個(gè)節(jié)點(diǎn)在若干條線段 中出現(xiàn)的次數(shù)。
2. 時(shí)間復(fù)雜度:同上
1. 堆是一種基于樹的滿足某些特征的數(shù)據(jù)結(jié)構(gòu),整個(gè)堆中的所有父子節(jié)點(diǎn)的鍵值都滿 足相同的排序條件。堆分為最大堆和最小堆。在最大堆中,父節(jié)點(diǎn)的鍵值永遠(yuǎn)大于 所有子節(jié)點(diǎn)鍵值,根節(jié)點(diǎn)的鍵值是最大的。最小堆中,父節(jié)點(diǎn)的鍵值永遠(yuǎn)小于子節(jié) 點(diǎn)鍵值,根節(jié)點(diǎn)的鍵值是最小的。
2. 時(shí)間復(fù)雜度:索引查找插入刪除:同上,刪除最大最?。篛(1)
1. 哈希用于將任意長(zhǎng)度的數(shù)據(jù)映射到固定長(zhǎng)度的數(shù)據(jù)。哈希函數(shù)的返回值被稱為哈希 值哈希碼或者哈希。如果不同的主鍵得到相同的哈希值,則發(fā)生了沖突。
2. Hash Map:hashmap是一個(gè)存儲(chǔ)鍵值關(guān)系的數(shù)據(jù)結(jié)構(gòu),hash map通過(guò)哈希函數(shù)將鍵 值轉(zhuǎn)化為桶或者槽中的下標(biāo),從而便于指定值的查找。
3. 沖突解決:鏈地址法:在鏈地址法中,每個(gè)桶是相互獨(dú)立的,每個(gè)索引對(duì)應(yīng)一個(gè)元 素列表。處理hashmap的時(shí)間就是查找桶的時(shí)間與遍歷列表元素的時(shí)間之和。
4. 開(kāi)放地址法:在開(kāi)放地址法中,當(dāng)插入新值時(shí),會(huì)判斷該值對(duì)應(yīng)的哈希桶是否存在, 如果存在則根據(jù)某種算法依次選擇下一個(gè)可能的地址,直到找到一個(gè)未被占用 的地址。開(kāi)放地址即某個(gè)元素的位置并不永遠(yuǎn)由其哈希值決定。
1. 圖是G=(V,E)的有序?qū)?,其包括頂點(diǎn)或節(jié)點(diǎn)的集合V以及邊或弧的集合E,其中E包 括了兩個(gè)來(lái)自V的元素。
2. 向圖:圖的鄰接矩陣是對(duì)稱的,因此如果存在節(jié)點(diǎn)u到節(jié)點(diǎn)v的邊,那節(jié)點(diǎn)v到 節(jié)點(diǎn)u的邊也一定存在。
3. 有向圖:圖的鄰接矩陣是非對(duì)稱的
以上就是數(shù)據(jù)結(jié)構(gòu)與算法視頻教程中大家需要掌握的知識(shí)點(diǎn),如果想了解更多Java視頻教程,可以到官網(wǎng)的視頻頁(yè)面中下載相關(guān)教程。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)