「拜託,你那樣講他還是聽不懂啦。」剛剛一直安靜坐在學長旁邊的學姊忽然開口。
我嚇了一跳——咦?難道我神遊被她看穿了?
「先搞清楚 Tree 的作用比較重要吧?」
「這個我知道,Tree 就是會分岔的嘛!」我比了個剪刀手。
「分岔⋯⋯這樣說也對。」學姊笑著點頭。「會分岔就代表有多個選擇,所以 Tree 常常用來表現『包含』的結構。比如說分類,我們逛賣場的時候,先看大分類的指示牌,再往下找子分類,一層層縮小範圍,最後才找到要的商品。」
「喔——所以學長剛才說的層級關係,就是這個意思?」
「嗯。因為彼此沒有直接關聯,他們就只是同一個分類,就像你和鄰居沒有直接關係一樣。」
「那二元搜尋樹呢?」我追問。
「這個嘛⋯⋯你就想成二分法。」學姊比劃了一下。「就像我們玩猜數字遊戲,我只告訴你比你猜的大或小,你就會往正確那個方向繼續猜。二元搜尋樹就是把數字事先整理好,每個節點就像你猜的數字,左邊接的是更小的數字,右邊接的是更大的數字,層層往下展開。」
「喔——所以才會說二元搜尋樹是排序過的啊。」我終於了解了。
「哈哈,沒錯。所以它還有個別名,叫『有序二元樹』。」學姊嘴角微微上揚,眼神裡閃過一絲淘氣。「不過我自己還是習慣叫『二元搜尋樹』啦。因為 Binary Search Tree 聽起來比較順耳,有語感——而且縮寫 BST 看起來就像 BEST 嘛!」