一、二叉搜索树的定义及性质
二叉查找树(Binary Search Tree),也称有序二叉树(ordered binary tree),排序二叉树(sorted binary tree),是指一棵空树或者具有下列性质的二叉树:
1. 每个节点都有一个作为搜索依据的关键码( key) , 所有节点的关键码互不相同。
2. 左子树上所有节点的关键码( key) 都小于根节点的关键码( key) 。
3. 右子树上所有节点的关键码( key) 都大于根节点的关键码( key) 。
4. 左右子树都是二叉搜索树。
在实现中,由它的性质可以初步简单的定义出节点信息,我们需要定义一个内部类BinarySearchTreeNode,它包含两个分别指向左右节点的Node->_left和Node->_right,一个保存键值信息的Key。
1 template <class K> 2 struct BinarySearchTreeNode 3 { 4