二叉树操作集


BinTree Insert( BinTree BST, ElementType X )

{

    if (BST == NULL) {

        BinTree Node = malloc(sizeof(struct TNode));

        Node->Data = X;

        Node->Left = Node->Right = NULL;

        BST = Node;

    }else

    {

        if (X < BST->Data) {

            BST->Left = Insert(BST->Left, X);

        }else if(X > BST->Data)

        {

            BST->Right = Insert(BST->Right, X);

        }

    }

    return BST;

}

BinTree Delete( BinTree BST, ElementType X )

{

    Position temp;

    if (!BST) {

        printf("Not Found\n");

    }else if (BST->Data > X) {

        BST->Left = Delete(BST->Left, X);

    }else if (BST->Data < X)

    {

        BST->Right = Delete(BST->Right, X);

    }else

    {

        if (BST->Left && BST->Right) {

            temp = FindMin(BST->Right);

            BST->Data = temp->Data;

            BST->Right = Delete(BST->Right, temp->Data);

        }else

        {

            temp = BST;

            if (!BST->Left) {

                BST = BST->Right;

            }else if(!BST->Right)

            {

                BST = BST->Left;

            }

            free(temp);

        }

    }

    return BST;

}

Position Find( BinTree BST, ElementType X )

{

    if (!BST) {

        return NULL;

    }

    if (BST->Data > X) {

        return Find(BST->Left, X);

    }else if(BST->Data < X)

    {

        return Find(BST->Right, X);

    }else

    {

        return BST;

    }

}

Position FindMin( BinTree BST )

{

    if (!BST) {

        return NULL;

    }else if(!BST->Left)

    {

        return BST;

    }else

    {

        return FindMin(BST->Left);

    }

}

Position FindMax( BinTree BST )

{

    if (BST) {

        while (BST->Right) {

            BST = BST->Right;

        }

    }

    return BST;

}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值