一、二叉搜索樹(shù)的定義及性質(zhì)

二叉查找樹(shù)(Binary Search Tree),也稱(chēng)有序二叉樹(shù)(ordered binary tree),排序二叉樹(shù)(sorted binary tree),是指一棵空樹(shù)或者具有下列性質(zhì)的二叉樹(shù):

1. 每個(gè)節(jié)點(diǎn)都有一個(gè)作為搜索依據(jù)的關(guān)鍵碼( key) , 所有節(jié)點(diǎn)的關(guān)鍵碼互不相同。
2. 左子樹(shù)上所有節(jié)點(diǎn)的關(guān)鍵碼( key) 都小于根節(jié)點(diǎn)的關(guān)鍵碼( key) 。
3. 右子樹(shù)上所有節(jié)點(diǎn)的關(guān)鍵碼( key) 都大于根節(jié)點(diǎn)的關(guān)鍵碼( key) 。
4. 左右子樹(shù)都是二叉搜索樹(shù)。

在實(shí)現(xiàn)中,由它的性質(zhì)可以初步簡(jiǎn)單的定義出節(jié)點(diǎn)信息,我們需要定義一個(gè)內(nèi)部類(lèi)BinarySearchTreeNode,它包含兩個(gè)分別指向左右節(jié)點(diǎn)的Node->_left和Node->_right,一個(gè)保存鍵值信息的Key。

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開(kāi)發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

 1 template <class K> 2 struct BinarySearchTreeNode 3 { 4