欢迎使用CSDN-markdown编辑器

来源:互联网 发布:数据挖掘外文书籍推荐 编辑:程序博客网 时间:2024/05/17 03:16

二叉排序树

1. 定义
二叉排序树(Binary Sort Tree):
(1). 或者是一颗空数;

(2). 或者是具有下列性质的树:

(a). 若它的左子树不为空,则左子树上的所有节点的值均小于它的根节点的值;(b). 若它的右子树不为空,则右子树上的所有节点的值均大于它的根节点的值;(c). 它的左右子树也分别为二叉排序树。

2. 二叉排序树又称二叉查找树

    根据二叉平衡树的定义的结构特点可见,它的查找过程和次优二叉树类似,即当二叉平衡树不为空时,首先将给定值和根节点的关键字比较,若相等,则查找成功,否则将依据给定值和根节点的关键字之间的大小关系,若小于根节点的关键字的值,在左子树上继续查找;若大于根节点关键字的值,在右子树上进行继续查找。
struct TreeNode{    int data;    BinaryTree *left;    BinaryTree *right;};typedef TreeNode* BinaryTree;BinaryTree SearchBlanceSortTree(BinaryTree root,int key){    BinaryTree p = root;    if( p == NULL)        return p;    bool flag = false;    while(p && !flag)    {        if(p->data == key){            flag = true;         }        if(p->data > key){            p = p->left;        }        if(key > p->data){            p = p->right;        }    }    return p;}
原创粉丝点击