From 4abab5ad6c8465a7528ccdd5f49367da05f78bbd Mon Sep 17 00:00:00 2001 From: Vladimir Azarov Date: Tue, 1 Oct 2024 15:47:05 +0200 Subject: Initial version --- src/search/tfind.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/search/tfind.c (limited to 'src/search/tfind.c') diff --git a/src/search/tfind.c b/src/search/tfind.c new file mode 100644 index 0000000..9e1cf98 --- /dev/null +++ b/src/search/tfind.c @@ -0,0 +1,20 @@ +#include +#include "tsearch.h" + +void *tfind(const void *key, void *const *rootp, + int(*cmp)(const void *, const void *)) +{ + if (!rootp) + return 0; + + struct node *n = *rootp; + for (;;) { + if (!n) + break; + int c = cmp(key, n->key); + if (!c) + break; + n = n->a[c>0]; + } + return n; +} -- cgit v1.2.3