1 /*- 2 * Written by J.T. Conklin <jtc (at) netbsd.org> 3 * Public domain. 4 * 5 * $NetBSD: search.h,v 1.12 1999/02/22 10:34:28 christos Exp $ 6 * $FreeBSD: release/9.0.0/include/search.h 105250 2002-10-16 14:29:23Z robert $ 7 */ 8 9 #ifndef _SEARCH_H_ 10 #define _SEARCH_H_ 11 12 #include <sys/cdefs.h> 13 #include <sys/types.h> 14 15 typedef enum { 16 preorder, 17 postorder, 18 endorder, 19 leaf 20 } VISIT; 21 22 #ifdef _SEARCH_PRIVATE 23 typedef struct node { 24 char* key; 25 struct node* llink; 26 struct node* rlink; 27 } node_t; 28 #endif 29 30 __BEGIN_DECLS 31 32 void* lfind(const void*, const void*, size_t*, size_t, int (*)(const void*, const void*)); 33 void* lsearch(const void*, void*, size_t*, size_t, int (*)(const void*, const void*)); 34 35 void* tdelete(const void* __restrict, void** __restrict, int (*)(const void*, const void*)); 36 void tdestroy(void*, void (*)(void*)); 37 void* tfind(const void*, void* const*, int (*)(const void*, const void*)); 38 void* tsearch(const void*, void**, int (*)(const void*, const void*)); 39 void twalk(const void*, void (*)(const void*, VISIT, int)); 40 41 __END_DECLS 42 43 #endif /* !_SEARCH_H_ */ 44