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