码迷,mamicode.com
首页 > 编程语言 > 详细

二叉排序树

时间:2015-05-13 08:46:23      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:

二叉排序树(简称BST),也称为二叉查找树。二叉排序树或者为一颗空树,或者为一颗具有下列特性的飞空二叉树:

1.若左子树非空,则左子树上所有节点的关键字均小于根节点的关键字值。

2.若右子树非空,则右子树上所有节点的关键字均小于根节点的关键字值。

3.左右子树本身也是一颗二叉排序树。

 

/********************二叉排序树********************************/

void BST(BiTree &T)
{
    ElemType x;
    cin>>x;
    while(x!=0)
    {
        CreateBST(T,x);
        cin>>x;
    }
}

int CreateBST(BiTree &T,ElemType x)
{

    if(T==NULL)
    {
        T=new BiTNode;
        T->data=x;
        T->lchild=NULL;
        T->rchild=NULL;
        return 1;
    }
    else
    {
        if(x>T->data)
            CreateBST(T->rchild,x);
        else if(x==T->data)
            return 0;
        else
            CreateBST(T->lchild,x);
    }
}

void BST_Search(BiTree &T,ElemType x,int &n)
{
    if(T)
    {
        n++;
        if(x>T->data)
            BST_Search(T->rchild,x,n);
        else if(x==T->data)
            cout<<"I Find It"<<n<<endl;
        else
            BST_Search(T->lchild,x,n);
    }
    else
    {
        cout<<"I cant‘t find it"<<endl;
    }
}

二叉排序树

标签:

原文地址:http://www.cnblogs.com/hutao886/p/4499287.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!