【 在 tortelee 的大作中提到: 】
: 目标值在某个range中间,能查到?
: 有点没看懂
显摆一下13年前的程序。
在平衡二叉树里寻找>=KEY的节点。可以是楼主的节点,把low_bound作为KEY即可。
sp:树根。每个节点含有用户数据结构。
content_key,节点,内有KEY值。
len,数据结构的size。
Cmp_rec,比较函数。
节点和比较函数都由使用者自己提供。
T_Tree * BB_Tree_GTEQ(T_Tree *sp,void *content_key,int len,
int (*Cmp_rec)(void *s1,void *s2,int len))
{
T_Tree *t=NULL;
while(sp) {
int rc=Tree_Cmp(sp->Content,content_key,len,Cmp_rec);
if(!rc) return sp;
if(rc<0) sp=sp->Right;
else {
t=sp;
sp=sp->Left;
}
}
return t;
}
--
修改:ylh0315 FROM 221.221.53.*
FROM 221.221.53.*