重念一次早該補起來的「資料結構與演算法」。這篇筆記樹狀結構的二元搜尋樹 ( Binary Search Tree, BST )。
課程相關資訊
[連結]:https://hiskio.com/courses/572/lectures/29870
本篇範圍:Chapter 9
請注意:本系列文章為個人對應課程的消化吸收後,所整理出來的內容。換言之,並不一定會包含全部的課程內容,也有可能會添加其他資源來說明。
內容
1. Binary Tree 是每個節點最多只會有兩個 children (也就是一左一右)
2. Binary Search Tree 除了上面第一點外,還會有左邊的子節點一定大於右邊的子節點
Insetion in BST
1. 先假設有兩個變數作為指標,其中一個 x 為 root,另一個 y 則為 null
2. 接著當 x !== null 時,y 先將 x 的位置暫存起來,接著 x 和要插入的值 z 進行比較。如果 z 的值比 x 小,那表示 x 要換成 x 的左側節點(也就是要插入的值,比當前的節點小);z 值比 x 大時則反之
3. 當 x 和 y 判斷結束時,先考量到一個特殊情況:當 y 還是 null 時,表示這顆樹連一個根節點都沒有,所以 root 會是 z。否則在其他狀況下,z 的值就會決定是在 y 的左側或是右側。 ( x 僅是用來判斷節點是否結束了 )