• 二叉排序树


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

  • 相关阅读:
    hdu1078 记忆化dfs
    hdu1142 dij+记忆化深搜
    UVA 11374 dijkstra预处理+枚举
    poj1502 单源最短路径
    hdu1814 2-SAT 暴力搜
    macos 10.15.1 pip3安装提示权限不足
    将安装器信息下载到目标卷宗失败
    Mac修改默认python版本
    努力吧,少年
    Implement strStr() 字符串匹配
  • 原文地址:https://www.cnblogs.com/hutao886/p/4499287.html
Copyright © 2020-2023  润新知