二叉搜尋樹的遍歷
推出一個新系列,《看圖輕鬆理解資料結構和演算法》,主要使用圖片來描述常見的資料結構和演算法,輕鬆閱讀並理解掌握。本系列包括各種堆、各種佇列、各種列表、各種樹、各種圖、各種排序等等幾十篇的樣子。
二叉搜尋樹
二叉搜尋樹(Binary Search Tree,簡寫BST),又稱為二叉排序樹,屬於樹的一種,通過二叉樹將資料組織起來,樹的每個節點都包含了健值 key、資料值 data、左子節點指標、右子節點指標。其中健值 key 是最核心的部分,它的值決定了樹的組織形狀;資料值 data 是該節點對應的資料,有些場景可以忽略,舉個例子,key 為身份證號而 data 為人名,通過身份證號找人名;左子節點指標指向左子節點;右子節點指標指向右子節點。
二叉搜尋樹特點
- 左右子樹也分別是二叉搜尋樹。
- 左子樹的所有節點 key 值都小於它的根節點的 key 值。
- 右子樹的所有節點 key 值都大於他的根節點的 key 值。
- 二叉搜尋樹可以為一棵空樹。
- 一般來說,樹中的每個節點的 key 值都不相等,但根據需要也可以將相同的 key 值插入樹中。

中序遍歷
我們知道對於二叉樹來說,遍歷的方式一般有三種:前序遍歷、中序遍歷和後序遍歷。但對於二叉搜尋樹,比較常用的是中序遍歷,因為通過該種方式遍歷出來的元素屬於一個遞增序列。
開始中序遍歷,即是以“左根右”方式遍歷,先找到“A”,

接著找到“B”,

往下一個個獲取,






樹的最小key值
二叉搜尋樹的最小 key 值節點從根節點開始一直沿著左子節點搜尋,直到遇到節點的左子節點指標為空,即找到最小值節點。因為二叉搜尋樹中左邊的節點總是小於右邊的節點,所以一直往左尋找。
從根節點開始,

往左查詢,

再往左,到達“A”節點,沒有左子節點了,停止搜尋,找到最小值。

樹的最大key值
二叉搜尋樹的最大 key 值節點從根節點開始一直沿著右子節點搜尋,直到遇到節點的右子節點指標為空,即找到最大值節點。因為二叉搜尋樹中右邊的節點總是大於左邊的節點,所以一直往右尋找。
從根節點開始,

往右查詢,

再往右,到達“H”節點,沒有右子節點了,停止搜尋,找到最大值。

-------------推薦閱讀------------
我的開源專案彙總(機器&深度學習、NLP、網路IO、AIML、mysql協議、chatbot)
跟我交流,向我提問:

歡迎關注:
