樹:和以前學到的棧、隊列、列表同樣是一種集合,但不一樣的是,樹是一種非線性結構,它的元素被組織成爲層次結構。html
樹的分類:git
度(order),萬事都有一個度,度就是書中任一結點能夠具備的最大孩子(Child)數,如圖中A的孩子數爲2,C的孩子數爲1 ,整個樹孩子數最多爲2,則度爲2; 根據一棵樹的度能夠將其稱爲n元樹,圖中爲二元樹(二叉樹)。數組
沒有孩子的結點就是樹的葉子,是樹的最終端。數據結構
樹的「平衡」,樹的全部葉子在同一層或者相差不超過一層,稱之謂平衡;學習
徹底樹,在平衡樹的基礎上,底層全部葉子緊靠左側設計
(向左看齊(⊙ˍ⊙)(←←)(←←)(←←) (←←))))))。。。)3d
滿樹,一個n元樹的每一個結點都有n個孩子,則爲滿樹。調試
實現樹,一樣有兩個方向:數組實現和鏈表實現:
數組實現又分兩個原則方法:計算策略和模擬連接策略;htm
樹的遍歷:四種:前序遍歷、中序遍歷、後序遍歷、層序遍歷。blog
前序:當前→左孩子→右孩子。拿圖三舉例:輸出順序爲abdecf
中序:左孩子→當前→右孩子。以圖三爲例:dbeacf
後序:左孩子→右孩子→當前。debfca
層序:一層一層地遍歷。abcdef
問題:模擬連接策略用數組實現樹的理解?
書中的圖片有點抽象,只好仔細閱讀。理解以下。
無
(statistics.sh腳本的運行結果截圖)
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 0/0 | 1/1 | 6/6 | |
第二週 | 771/771 | 1/2 | 16/22 | |
第三週 | 562/1233 | 1/3 | 15/37 | |
第四周 | 1503/2736 | 2/5 | 15/52 | |
第五週 | 1152/3888 | 1/6 | 10/62 | |
第六週 | 787/4675 | 1/7 | 10/72 |