C++数据结构-二叉排序树的查找、创建和删除

#include <iostream>
#define TRUE 1
#define FALSE 0
using namespace std;

typedef int Status;

typedef struct BtNode
{
   
   
    int data; //数据域
    struct BtNode *lchild,*rchild;
}BtNode,*BTree;

//二叉排序树的查找操作
//参数1:BTree T ,查找操作不修改这个二叉排序树,所以不采用引用方式
//参数2:int key ,要查找的值
//参数3:BTree f ,f指向T的双亲,初始的值为NULL;
//参数4:BTree &p , 若找到,则p用来保存查找到的元素的位置,没找到则p=f,所以采用引用方式带回
/*********************************************************/
Status SerachBST(BTree T , int key ,BTree f, BTree &p)
{
   
   
    if(!T)   //查找不成功
    {
   
   
        p=f;
        return FALSE;
    }
    else if(key == T->data)  //查找成功
    {
   
   
        p=T;                 //p记录下查找到的位置
        return TRUE;
    }
    else if(key < T->data)
        return SerachBST(T->lchild,key,T
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值