数据结构 简单算法实现在二叉排序树上查找关键值k

typedef struct node{int key; struct node *lchild; struct node *rchild;}bitree;
bitree *bstsearch(bitree *t, int k)
{
if (t==0 ) return(0);else while (t!=0)
if (t->key==k) return(t); else if (t->key>k) t=t->lchild; else_t=t->rchild_;
}
整个程序什么意思 看不懂

第1个回答  推荐于2016-12-01
如果用C语言,应该要写成这样:
typedef struct node{int key; struct node *lchild; struct node *rchild;}bitree;
bitree *bstsearch(bitree *t, int k)
{
if (t==NULL ) //这里t是一个指针,是不能跟0判等的,要和空指针判等
{
return(NULL);//如果t是空指针,表示数是空数,不存在关键值key
}
else
{
while (t!=NULL)//要循环遍历整个树,寻找关键值key
{
if (t->key==k) //如果找到了关键值key,则返回节点指针t
return(t);
else if (t->key>k) //因为是排序树,则有对于任意节点,左孩子小于根小于右孩子
t=t->lchild; //所以如果当前节点的key大于输入值,则搜索左子树,否则右子树
else
t=t->rchild_;
}
return NULL;//这里要加这个,如果搜索不到的话要返回空指针
}

}本回答被提问者采纳
相似回答