二叉搜索树

博客介绍了二叉搜索树的特性,即左节点比父亲节点小,右节点比父亲节点大。同时阐述了往二叉搜索树中插入节点以及删除节点的相关内容,聚焦于二叉搜索树节点操作方面的信息技术知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

左节点比父亲节点小,右节点比父亲节点大//二叉搜索树

往二叉搜索数中插入节点

BiTree* Insert(ElementType X,Bitree* BST)
{
    if(!BST)//意思是BST是一个空树
    {
        *BST=(Bitree*)malloc(sizeof(BiTree));
        BST->data=X;
        BST->left=BST->right=NULL;
    }
    else
    {
        if(X<BST->data)
            BST->left=Insert(X,BST->left);
        else if(X>BST->data)
            BST->right=Insert(X,BST->right);
    }
    return BST;
}

二叉搜索树节点删除

 

 

BiTree Delete(ElementTypr X,Bitree *BST)
{
    Position Tmp;
    if(!BST) printf("树为空")
    else if(X<BST->data)
        BST->left=Delete(X,BST->left);//左子树递归删除    
    else if(X>BST->data)
        BST->right=Delete(X,BST->right);//右子树递归删除
    else//找到了要删除的节点
    {
        if(BST->right&&BST->left)//判断要删除的节点有左孩子和右孩子
        {
            Tmp=FindMin(BST->right);
            BST->data=Tmp->data;
            BST->right=Delete(BST->data,BST->right);
        }
        else//被删除的节点有一个或者无子节点
        {
            Tmp=BST;
            if(!BST->left)
                BST=BST->right;
            else if(!BST->right)
                BST=BST->left;
            free(Tmp);
        }
    return BST;
    }       
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值