当前位置:C++技术网 > 资讯 > 数据结构笔记分享:7 二叉搜索树

数据结构笔记分享:7 二叉搜索树

更新时间:2015-11-18 18:52:10浏览次数:1+次

学习二叉搜索树的前提是了解二叉树,二叉树的知识点前面更新过很多,这里就不多说了。

下面直接讲讲二叉搜索树的定义:


假定所有结点的关键字值各不相同,二叉搜索树或者是一棵空二叉树,或者是具有下列性质的二叉树:

(1)若左子树不空,则左子树上所有结点的关键字值均小于根结点关键字值;

(2)若右子树不空,则右子树上所有结点的关键字值均大于根结点关键字值;

(3)左、右子树也分别是二叉搜索树。

注意前提都是本身是一个二叉树。


下面这个树虽然长得丑了点,但是也是一个标准的二叉搜索树


细心的读者可能发现:若以中序遍历一棵二叉搜索树,将得到一个以关键字值递增排列的有序序列。当然你的发现没错,这就是一个二叉搜素树的性质

二叉搜索树类
 template<class T>
 class BSTree:public DynamicSet<T>
 {
     public:
       BSTree(){ root=NULL; }   
       ResultCode Search(T & x) const;
       ResultCode Insert(T & x);
       ResultCode Remove(T & x);
       …
   protected:
       BTNode<T>* root;
   private:
       ResultCode Search(BTNode<T> *p, T & x)const;
       …
 };