rbtree.c: search: return key instead of node.
This commit is contained in:
parent
027bf154a7
commit
3671888b8b
3 changed files with 6 additions and 8 deletions
|
|
@ -86,7 +86,7 @@ inline int rbtree_is_empty(rbtree *tree) {
|
|||
/*
|
||||
* Searches a tree by key.
|
||||
*/
|
||||
rbnode* rbtree_search(rbtree *tree, const void *key) {
|
||||
void* rbtree_search(rbtree *tree, const void *key) {
|
||||
|
||||
rbnode *n;
|
||||
|
||||
|
|
@ -99,12 +99,11 @@ rbnode* rbtree_search(rbtree *tree, const void *key) {
|
|||
int cmp = tree->cmp_fn(n->key, key);
|
||||
|
||||
if (cmp == 0)
|
||||
break;
|
||||
return (void *) n->key;
|
||||
|
||||
n = n->child[cmp < 0];
|
||||
}
|
||||
|
||||
return n;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void rbtree_walk(rbtree *tree, void (*action)(rbnode *)) {
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ typedef struct {
|
|||
|
||||
int rbtree_is_empty(rbtree *tree);
|
||||
|
||||
rbnode* rbtree_search(rbtree *tree, const void *key);
|
||||
void* rbtree_search(rbtree *tree, const void *key);
|
||||
|
||||
void rbtree_walk(rbtree *tree, void (*action)(rbnode *));
|
||||
|
||||
|
|
|
|||
Reference in a new issue