Binary Search Trees 的結構
在 tree 裡面的每一個 root node 都可以包含至多兩個子 node。
在 root node 左手邊的 node 所帶的值,都會小於或等於 root node 帶的值。
在 root node 右手邊的 node 所帶的值,都會大於 root node 帶的值。
Note:
上面講每一個 root node 可以包含至多兩個子 node,會特別說明至多是因為,root node 也有可能只包含一個子 node。
Binary Search Tree 的結構圖如下:
上面這個 binary search tree 拆細一點來看的話,可以看出來它也是由多個小 tree 所組成,
即: 由 [4,2,6], [2,1,3], [6,5,7] 這三個小的 binary search tree 組成以上這個大的 binary search tree。
每一個 node 含有的成員屬性
以下是每一個 node 都會含有的成員屬性
分別為:value
: 此 node 所帶的值left
: 此 node 的左邊的子 node 的參照right
: 此 node 的右邊的子 node 的參照
以下是 node 的實作程式碼:
1 | function BST(value) { |
解釋一下上面程式碼的內容
1 | /* |
Conclusion
- Binary Search Tree 是由多個 node 所組成的。
- node 擁有 value, left, right 這三個成員屬性。
- node 的左節點的值會小於等於 parent node,右節點大於 parent node。
Reference Link
- Learning Data Structures in JavaScript from Scratch by Eric Traub @ Udemy