一、二叉搜索樹的定義及性質(zhì)
二叉查找樹(Binary Search Tree),也稱有序二叉樹(ordered binary tree),排序二叉樹(sorted binary tree),是指一棵空樹或者具有下列性質(zhì)的二叉樹:
1. 每個節(jié)點(diǎn)都有一個作為搜索依據(jù)的關(guān)鍵碼( key) , 所有節(jié)點(diǎn)的關(guān)鍵碼互不相同。
2. 左子樹上所有節(jié)點(diǎn)的關(guān)鍵碼( key) 都小于根節(jié)點(diǎn)的關(guān)鍵碼( key) 。
3. 右子樹上所有節(jié)點(diǎn)的關(guān)鍵碼( key) 都大于根節(jié)點(diǎn)的關(guān)鍵碼( key) 。
4. 左右子樹都是二叉搜索樹。
在實(shí)現(xiàn)中,由它的性質(zhì)可以初步簡單的定義出節(jié)點(diǎn)信息,我們需要定義一個內(nèi)部類BinarySearchTreeNode,它包含兩個分別指向左右節(jié)點(diǎn)的Node->_left和Node->_right,一個保存鍵值信息的Key。
1 template <class K> 2 struct BinarySearchTreeNode 3 { 4