Home | History | Annotate | Download | only in include
      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 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