1肾筐,遍歷二叉樹的順序和3中不同的打印順序
2,什么是線索二叉樹缸剪,其原理是什么吗铐,解決了什么問題?
3杏节,樹轉(zhuǎn)化為二叉樹的過程唬渗,及二叉樹轉(zhuǎn)化為樹的過程典阵。
4,森林轉(zhuǎn)為二叉樹的過程镊逝,二叉樹轉(zhuǎn)化為森林的過程
5壮啊,樹的遍歷,和森林的遍歷
6撑蒜,郝夫曼樹的定義及帶權(quán)路徑的定義
7歹啼,郝夫曼樹構(gòu)建過程
8 什么是郝夫曼編碼
1,遍歷二叉樹的順序和3中不同的打印順序
遍歷的順序都是一樣的座菠,先根結(jié)點再子結(jié)點狸眼,再從左到右。
前序遍歷辈灼,遍歷結(jié)點前打印結(jié)點份企。
中序遍歷也榄,遍歷完左子樹之后要遍歷右子樹前打印結(jié)點巡莹。
后序遍歷,遍歷完該結(jié)點的所有孩子結(jié)點后再打印該結(jié)點甜紫。
2降宅,什么是線索二叉樹,其原理是什么囚霸,解決了什么問題腰根?
加上線索的二叉鏈表稱為線索鏈表樹(指向前驅(qū)后繼的指針稱為線索)
原理,空指針的個數(shù)比結(jié)點個數(shù)多1拓型,可以用空指針指向該結(jié)點的前驅(qū)后繼额嘿。
如果該結(jié)點有左孩子結(jié)點就指向其左孩子結(jié)點,如果沒有就指向其前驅(qū)劣挫。
為了區(qū)分是指向其孩子結(jié)點還是前驅(qū)后繼册养,增加了2個極小的標(biāo)識域(ltag,rtag,0表示指向孩子压固,1表示指向前驅(qū)/后繼)
解決的問題球拦,解決了二叉樹結(jié)點只指向孩子結(jié)點難以找到雙親結(jié)點的過程。
3帐我,樹轉(zhuǎn)化為二叉樹的過程坎炼,及二叉樹轉(zhuǎn)化為樹的過程。
1拦键,加線谣光,所有兄弟結(jié)點間加一個線。
2芬为,去線萄金,樹中的每個結(jié)點只保留它與第一個孩子結(jié)點的連線狼钮,刪除它與其它孩子結(jié)點的連線。
3捡絮,層次調(diào)整熬芜,以樹的根為軸心,將整顆樹順時針旋轉(zhuǎn)一定角度福稳,使之結(jié)構(gòu)分明(第一個孩子是結(jié)點的左孩子涎拉,兄弟轉(zhuǎn)過來的孩子是結(jié)點的右孩子)
二叉樹轉(zhuǎn)為樹
1,加線的圆,若結(jié)點的左孩子結(jié)點存在鼓拧。將左孩子結(jié)點的右孩子結(jié)點,右孩子的右孩子越妈,右孩子的右孩子的右孩子...... 全部作為該結(jié)點的孩子季俩。
2,去線梅掠,刪除原二叉樹中所有結(jié)點與其右孩子的結(jié)點的連線
3酌住,層次調(diào)整,使其結(jié)構(gòu)層次分明阎抒。
4酪我,森林轉(zhuǎn)為二叉樹的過程,二叉樹轉(zhuǎn)化為森林的過程
森林轉(zhuǎn)為二叉樹的過程
1且叁,把每個樹轉(zhuǎn)為二叉樹都哭。
2,第一樹不動逞带,以后每棵樹的根結(jié)點作為上棵樹的根節(jié)點的右孩子(如何這棵樹本身就是二叉樹呢)
二叉樹轉(zhuǎn)化為森林
條件 如果一個二叉樹的根結(jié)點有右孩子欺矫,那么久可以轉(zhuǎn)化成森林
1,從根結(jié)點開始展氓,若有右孩子則刪除連線穆趴。分離后的二叉樹還有右孩子則連線刪除。
2带饱,再將分離的樹轉(zhuǎn)化成二叉樹毡代。
5,樹的遍歷勺疼,和森林的遍歷
- 樹的遍歷
先根遍歷
先訪問樹的根結(jié)點
再依次先根遍歷根的每棵子樹
后根遍歷
先依次后根遍歷每棵子樹
然后再訪問根結(jié)點
- 森林的遍歷
前序遍歷
先訪問森林中的第一棵樹的根結(jié)點教寂,再依次先根遍歷根的每棵子樹。
再用同樣的方式遍歷除了第一棵樹的森林
后序遍歷
先訪問森林中的第一棵樹执庐,后根遍歷的方式遍歷每棵子樹酪耕,然后再訪問根結(jié)點。
再用同樣的方式遍歷除了第一棵樹的森林
6轨淌,郝夫曼樹的定義及帶權(quán)路徑的定義
帶權(quán)路徑長度
所有葉子結(jié)點的帶權(quán)路徑長度之和
郝夫曼樹
帶權(quán)路徑長度最小的二叉樹稱為郝夫曼樹
7看尼,郝夫曼樹構(gòu)建過程
1,把所有有權(quán)值的葉子結(jié)點按照從小到大的順序排成一個有序序列盟步。
2,取序列中最小的2個結(jié)點作為一個新結(jié)點N1藏斩,新結(jié)點的權(quán)值為2個結(jié)點的和。
3却盘,將新的結(jié)點插入隊列中保持由小到大的順序狰域。直到形成新的根結(jié)點。
8 什么是郝夫曼編碼
1黄橘,設(shè)置需要編碼的字符集為{d1,d2,d3...dn},
2,各個字符在電文中出現(xiàn)的次數(shù)或頻率集合為{w1,w2,...wn}
3兆览,以d 作為葉子結(jié)點,以w 作為葉子的權(quán)重塞关。規(guī)定郝夫曼樹的左枝為0右枝為1 抬探。
4,從根結(jié)點到葉子結(jié)點帆赢,所經(jīng)過的路徑分支構(gòu)成的0和1的序列便為該結(jié)點對應(yīng)字符的編碼小压,這就是郝夫曼編碼。