数据结构-树(上)
- 樹(shù)的表示:(法1)結(jié)構(gòu)+鏈表
*優(yōu)點(diǎn):結(jié)構(gòu)統(tǒng)一,易于處理;
*缺點(diǎn):結(jié)構(gòu)的統(tǒng)一會(huì)造成空間上的浪費(fèi),比如3n個(gè)指針域,實(shí)際只需n-1個(gè)指針域;
- 樹(shù)的表示:(法2)兒子-兄弟表示法(二叉樹(shù))
*形式:1個(gè)結(jié)點(diǎn)2個(gè)指針,分別指向第1個(gè)兒子和下1個(gè)兄弟;
*優(yōu)點(diǎn):結(jié)構(gòu)統(tǒng)一,且空間浪費(fèi)不大[為2n-(n-1)];
*二叉樹(shù)在樹(shù)的研究中是最重要且最主要的樹(shù);
- 二叉樹(shù)的定義
*度為2的樹(shù),且該樹(shù)有左右之分;
*特殊的二叉樹(shù):
斜二叉樹(shù):左斜或右斜,一條直線的鏈;
完美二叉樹(shù)(滿二叉樹(shù)):所有結(jié)點(diǎn)皆滿;
完全二叉樹(shù):(類似于滿二叉樹(shù))上至下,左至右編號(hào),且允許不滿,且必須從右邊開(kāi)始缺子樹(shù);
- 二叉樹(shù)的重要性質(zhì):
*二叉樹(shù)第i層的最大結(jié)點(diǎn)數(shù):2^(i-1);
*深度為K的二叉樹(shù)的最大結(jié)點(diǎn)總數(shù)(完美二叉樹(shù)):[2^k]-1;
*n0:葉結(jié)點(diǎn)的個(gè)數(shù),n1:度為1的非葉結(jié)點(diǎn)的個(gè)數(shù),n2:度為2的非葉結(jié)點(diǎn)的個(gè)數(shù),滿足:n0=n2+1;
- 二叉樹(shù)的操作集:
(1)判斷BT是否為空;
(2)按順序遍歷;
*先序遍歷:根、左子樹(shù)、右子樹(shù)
*中序遍歷:左子樹(shù)、根、右子樹(shù)
*后序遍歷:左子樹(shù)、右子樹(shù)、根
*層次遍歷:從上到下、從左到右
(3)創(chuàng)建一個(gè)二叉樹(shù);
- 二叉樹(shù)的存儲(chǔ)結(jié)構(gòu):
(1)完全二叉樹(shù)(從上到下、從左到右編號(hào))【數(shù)組存儲(chǔ)】:
*非根節(jié)點(diǎn)的父結(jié)點(diǎn)的序號(hào)為i/2往下取整;
*結(jié)點(diǎn)的左孩子:2i;(若2i<=n)
*結(jié)點(diǎn)的右孩子:2i+1;(若2i+1<=n)
(2)一般的二叉樹(shù)
(可以采用上面這種順序結(jié)構(gòu),但是會(huì)造成空間的浪費(fèi))【數(shù)組存儲(chǔ)】
(鏈表存儲(chǔ)一般二叉樹(shù),避免浪費(fèi)空間)【鏈表存儲(chǔ)】
?
轉(zhuǎn)載于:https://www.cnblogs.com/Bran-don/p/10452834.html
總結(jié)
- 上一篇: [远航笔记流水账]易大漠多线程初级教程0
- 下一篇: STL - bitset