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*);
     33 void remque(void*);
     34 
     35 void* lfind(const void*, const void*, size_t*, size_t, int (*)(const void*, const void*));
     36 void* lsearch(const void*, void*, size_t*, size_t, int (*)(const void*, const void*));
     37 
     38 void* tdelete(const void* __restrict, void** __restrict, int (*)(const void*, const void*));
     39 void tdestroy(void*, void (*)(void*));
     40 void* tfind(const void*, void* const*, int (*)(const void*, const void*));
     41 void* tsearch(const void*, void**, int (*)(const void*, const void*));
     42 void twalk(const void*, void (*)(const void*, VISIT, int));
     43 
     44 __END_DECLS
     45 
     46 #endif /* !_SEARCH_H_ */
     47