資料結構--樹(Tree)的學習線路
阿新 • • 發佈:2018-12-20
不管是在面試時,還是日常開發過程中。“樹” 都是一種曝光率極高的一種資料結構。因此掌握 “樹” 這項技能包對於開發工程師來說是必選項。
但是有關樹的知識點實在是很多,那麼作為一個基本及格的工程師應該掌握哪些樹,又該掌握到什麼程度呢?
我個人認為,對於 “樹” 這種資料結構,只要掌握(最好是能信手拈來)以下幾項就基本能夠達到大部分的面試要求.
1. 什麼是樹
知道樹的定義,以及跟樹相關的各個術語,比如根節點、葉子結點、樹的高度等等。
2. 二叉樹(核心、重點)
2.1 什麼是二叉樹,二叉樹表示有哪2種
2.2 什麼是完全二叉樹
2.3 二叉樹的遍歷方式
3. 二叉搜尋樹(重點 )
3.1 什麼是二叉搜尋樹
3.2 二叉搜尋樹的實現程式碼
3.3 二叉搜尋樹和雜湊表的優勢對比
4. 平衡樹(難點)
4.1 什麼是平衡樹,為什麼要設計平衡樹
4.2 紅黑樹的實現(不一定能夠手寫紅黑樹,但是要熟知原理)
4.3 用左平衡二叉樹幫助實現優先佇列
5. 知道了解:
最好是瞭解一下霍夫曼樹、AVL樹、決策樹等這些書的實現與特點。現在人工智慧這麼火爆,我們也有必要了解一下決策樹是如何在AI資料處理中扮演著重要的角色
6. LeetCode關於樹的題目
如果時間和精力允許,最好是定期性的在LeetCode上刷各種和樹相關的題(後續會專門寫一篇文章,總結羅列一些LeetCode上關於Tree的題目