二元搜尋樹(Binary Search Tree),也稱有序/排序二元樹
,是一種特殊二元樹結構,而節點資料的排序具備一些特性。
左子樹
任一節點的值一定小於根節點的值
。右子樹
任一節點的值一定大於根節點的值
。不能
出現重複
的資料。如下面這棵樹,就是一棵合法的BST
下面這棵樹就不是一棵合法的BST,雖然節點11大於8是合法,大於6也是合法的。但是不能大於10這個節點。畢竟11這個節點還是屬於10節點的左子樹。因此不是一棵合法的二元搜尋樹。
若目標值小於節點的值,則前往左子樹;若目標值大於節點的值,則前往右子樹;
若目標值小於節點的值,則繼續在左子樹中搜尋;若目標值大於節點的值,則繼續在右子樹中搜尋;
需要考慮節點的三種情況