怎么将这段C++代码改成c语言代码

boolSearchBST(BiTreeroot,intdata,BiTreef,BiTree&p){if(!root){p=f;returnfalse;}elseif(... bool SearchBST(BiTree root,int data,BiTree f,BiTree &p)
{
if(!root)
{
p=f;
return false;
}
else if(data==root->value)
{
p=root;
return true;
}
else if(data<root->value)
return SearchBST(root->lchild,data,root,p);
else if(data>root->value)
return SearchBST(root->rchild,data,root,p);
}

//当二叉排序树root中不存在关键字等于data的数据元素时,插入data
void InsertBST(BiTree &root,int data) //root为传引用指针
{
BiTree p,s;
if(!SearchBST(root,data,NULL,p)) //查找不成功
{
s=(struct BiTNode *)malloc(sizeof(BiTNode));
s->value=data;
s->lchild=s->rchild=NULL;
if(p==NULL) //二叉排序树为空的时候,被插入结点*s为新的根结点
root=s;
else if(LT(data,p->value)) //被插结点*s为左孩子
p->lchild=s;
else //被插结点*s为右孩子
p->rchild=s;
}
}
展开
 我来答
wchyumo2011
推荐于2016-04-14 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2791万
展开全部

应该是去掉引用吧,改为指针就可以了

bool SearchBST(BiTree root, int data, BiTree f, BiTree *p)
{
if (!root)
{
*p = f;
return false;
}
else if (data == root->value)
{
*p = root;
return true;
}
else if (data<root->value)
return SearchBST(root->lchild, data, root, p);
else if (data>root->value)
return SearchBST(root->rchild, data, root, p);
}

//当二叉排序树root中不存在关键字等于data的数据元素时,插入data
void InsertBST(BiTree *root, int data)     //root为传引用指针
{
BiTree p, s;
if (!SearchBST(*root, data, NULL, &p))    //查找不成功
{
s = (struct BiTNode *)malloc(sizeof(BiTNode));
s->value = data;
s->lchild = s->rchild = NULL;
if (p == NULL)    //二叉排序树为空的时候,被插入结点*s为新的根结点
*root = s;
else if (LT(data, p->value))           //被插结点*s为左孩子
p->lchild = s;
else           //被插结点*s为右孩子
p->rchild = s;
}
}
追问
但是
C语言又bool吗?
追答
要使用的话,加上头文件#include 就可以了
百度网友6034c1b2
2015-12-12 · TA获得超过309个赞
知道小有建树答主
回答量:918
采纳率:0%
帮助的人:363万
展开全部
这段代码不需要再改啊 C里面就可以用
追问
不能用,表示亲测
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式