1. 程式人生 > >資料結構--樹(Tree)的學習線路

資料結構--樹(Tree)的學習線路

不管是在面試時,還是日常開發過程中。“樹” 都是一種曝光率極高的一種資料結構。因此掌握 “樹” 這項技能包對於開發工程師來說是必選項。

但是有關的知識點實在是很多,那麼作為一個基本及格的工程師應該掌握哪些樹,又該掌握到什麼程度呢?

我個人認為,對於 “樹” 這種資料結構,只要掌握(最好是能信手拈來)以下幾項就基本能夠達到大部分的面試要求.

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的題目

)