怎么将这段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;
}
} 展开
{
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;
}
} 展开
展开全部
应该是去掉引用吧,改为指针就可以了
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 就可以了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询