zoukankan      html  css  js  c++  java
  • 二叉排序树

    二叉排序树(简称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;
        }
    }

  • 相关阅读:
    个人附加作业
    个人作业3——个人总结(Alpha阶段)
    四则运算-单元测试
    英语学习APP案例分析
    基于GUI的四则运算
    基于控制台的四则运算
    对forEach、for-in还有es6的for-of的一些整理
    ASP.NET学习笔记5
    ASP.NET学习笔记4
    String类型的二进制数求和
  • 原文地址:https://www.cnblogs.com/hutao886/p/4499287.html
Copyright © 2011-2022 走看看