森林,樹
【樹的存儲(chǔ)結(jié)構(gòu)】:我們可以分為【順序存儲(chǔ)】,【鏈?zhǔn)酱鎯?chǔ)】(似乎所有的邏輯結(jié)構(gòu)都可以鏈?zhǔn)酱鎯?chǔ)或順序存儲(chǔ))?
? ?chapter1:雙親表示法:
? ? ? ? ? ? ? ? 【一組連續(xù)的空間來存儲(chǔ)每個(gè)【節(jié)點(diǎn)】+【偽指針(指示其雙親的位置)】,由于只有【唯一雙親】的興致,我們可以快速找到【雙親節(jié)點(diǎn)】,如果要找到它的孩子:要遍歷樹。

chapter 2:孩子表示法
? ? 【娃娃】用【單鏈表連接】起來形成線性結(jié)構(gòu)?!緉個(gè)結(jié)點(diǎn),有n個(gè)孩子鏈表】。
? chapter2.1:孩子兄弟表示法:
chapter3:樹,森林與二叉樹的轉(zhuǎn)換
? 二叉樹和樹都可以用【二叉鏈表】存儲(chǔ)。所以,二叉樹和樹之間有一個(gè)對(duì)應(yīng)關(guān)系。
?chapter3.1 ?樹轉(zhuǎn)換成為二叉樹的規(guī)則:
樹----轉(zhuǎn)換成為【二叉樹】:規(guī)則:左孩子右兄弟
【畫法】:【兄弟節(jié)點(diǎn)加一條線,】【每個(gè)節(jié)點(diǎn)保留第一個(gè)孩子,其他刪掉,】【以樹根為軸心順時(shí)針45度】。
chapter4 樹與二叉樹的應(yīng)用
? ? chapter4.1 哈夫曼樹和哈夫曼編碼
?首先,我們先引入【權(quán)】這個(gè)概念,【權(quán)】和他相關(guān)的是【結(jié)點(diǎn)】,權(quán)的含義是結(jié)點(diǎn)【數(shù)值大小】。
【帶權(quán)路徑長度】:【葉子】經(jīng)過的邊數(shù) * 對(duì)應(yīng)的權(quán) = WPL
這樣我們就可以量化二叉樹了
然后由路徑*權(quán)得到的【最小帶權(quán)路徑長度】得到 最小的二叉樹(”小名“),也叫哈夫曼樹(“大名”)。
chapter 4.2 哈夫曼樹構(gòu)造(權(quán)值給定的結(jié)點(diǎn)給他構(gòu)造哈夫曼樹)
https://www.bilibili.com/video/BV1wX4y1M7TG/?spm_id_from=333.337.search-card.all.click&vd_source=6554414bb833d00936eedd5ecc0d9f26
具體過程我不贅述了,多做倆題就會(huì)了。(就是注意編碼方向)
chapter4.3哈夫曼編碼:
? ? ? ? ? ? 1.將哈夫曼樹寫出來,左孩子為0,右孩子為1
? ? ? ? ? ?寫到葉節(jié)點(diǎn)前面的邊
?【哈夫曼編碼的作用】:可以設(shè)計(jì)出總長度最短的二進(jìn)制編碼。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?