1 /*- 2 * Written by J.T. Conklin <jtc@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 insque(void*, void*) __INTRODUCED_IN(21); 33 void remque(void*) __INTRODUCED_IN(21); 34 35 void* lfind(const void*, const void*, size_t*, size_t, int (*)(const void*, const void*)) 36 __INTRODUCED_IN(21); 37 void* lsearch(const void*, void*, size_t*, size_t, int (*)(const void*, const void*)) 38 __INTRODUCED_IN(21); 39 40 void* tdelete(const void* __restrict, void** __restrict, int (*)(const void*, const void*)) 41 __INTRODUCED_IN(16); 42 void tdestroy(void*, void (*)(void*)) __INTRODUCED_IN(16); 43 void* tfind(const void*, void* const*, int (*)(const void*, const void*)) __INTRODUCED_IN(16); 44 void* tsearch(const void*, void**, int (*)(const void*, const void*)) __INTRODUCED_IN(16); 45 void twalk(const void*, void (*)(const void*, VISIT, int)) __INTRODUCED_IN(21); 46 47 __END_DECLS 48 49 #endif /* !_SEARCH_H_ */ 50