qq_34646580 2016-04-13 07:22 采纳率: 0%
浏览 1278

二叉排序树的C++实现,编译通过,无法运行

#include
using namespace std;
struct tree{
tree lchild;
tree*rchild;
int data;
};
bool serchBST(tree *T,int key ,tree*f,tree
&p);
void insertBST(tree*T,int key);
bool serchBST(tree T,int key ,tree *f,tree *&p)
{
if(!T)
{p=f;return false;}
else if(T->data==key)
{p=T;return true;}

else if(keydata)
return serchBST(T->lchild,key,T,p);
else
return serchBST(T->rchild,key,T,p);
}
void insert(tree*T,int key)
{
tree*p=NULL;
if(!serchBST(T,key,NULL,
&p))
{
tree *s=new tree;
s->data=key;
s->lchild=s->rchild=NULL;
if(keydata)
p->lchild=s;
else
p->rchild=s;
delete s;
}

}
int main()
{
tree a;
tree p=NULL;
a.data=62;
a.lchild=a.rchild=NULL;
insert(&a,77);
cout<<serchBST(&a,77,NULL,
&p);
}
代码如上所示,编译通过,算法没问题,但用VS调试的无法运行,serch函数,指针f指向T的双亲,初始调用NULL。查找成功,则指针p指向该元素结点,否则指向查找路径上访问的最后一个结点。感觉是insert函数有问题,请高手解答

  • 写回答

1条回答 默认 最新

  • 小灸舞 2016-04-13 07:44
    关注

    有很多地方少*号,if(keydata)也看不懂,难道是if(key==T->data)?不知道是不是复制粘贴的问题?
    建议楼主重新发一下
    把代码放在代码标识里

    评论

报告相同问题?

悬赏问题

  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错