Home | History | Annotate | Line # | Download | only in include
search.h revision 1.9
      1  1.9  jtc /*	$NetBSD: search.h,v 1.9 1995/08/08 21:14:45 jtc Exp $	*/
      2  1.6  cgd 
      3  1.1  jtc /*
      4  1.7  jtc  * Written by J.T. Conklin <jtc (at) netbsd.org>
      5  1.7  jtc  * Public domain.
      6  1.1  jtc  */
      7  1.1  jtc 
      8  1.1  jtc #ifndef _SEARCH_H_
      9  1.1  jtc #define _SEARCH_H_
     10  1.2  jtc #include <sys/cdefs.h>
     11  1.2  jtc #include <machine/ansi.h>
     12  1.1  jtc 
     13  1.5  cgd #ifdef	_BSD_SIZE_T_
     14  1.5  cgd typedef	_BSD_SIZE_T_	size_t;
     15  1.5  cgd #undef	_BSD_SIZE_T_
     16  1.2  jtc #endif
     17  1.1  jtc 
     18  1.9  jtc typedef struct entry {
     19  1.9  jtc 	char *key;
     20  1.9  jtc 	char *data;
     21  1.9  jtc } ENTRY;
     22  1.9  jtc 
     23  1.9  jtc typedef enum {
     24  1.9  jtc 	FIND, ENTER
     25  1.9  jtc } ACTION;
     26  1.9  jtc 
     27  1.8  jtc typedef enum {
     28  1.8  jtc 	preorder,
     29  1.8  jtc 	postorder,
     30  1.8  jtc 	endorder,
     31  1.8  jtc 	leaf
     32  1.8  jtc } VISIT;
     33  1.8  jtc 
     34  1.1  jtc __BEGIN_DECLS
     35  1.1  jtc extern void	*bsearch __P((const void *, const void *, size_t, size_t,
     36  1.3  jtc 			      int (*)(const void *, const void *)));
     37  1.9  jtc extern int	 hcreate __P((unsigned int));
     38  1.9  jtc extern void	 hdestroy __P((void));
     39  1.9  jtc extern ENTRY	*hsearch __P((ENTRY, ACTION));
     40  1.9  jtc 
     41  1.3  jtc extern void	*lfind __P((const void *, const void *, size_t *, size_t,
     42  1.3  jtc 			      int (*)(const void *, const void *)));
     43  1.3  jtc extern void	*lsearch __P((const void *, const void *, size_t *, size_t,
     44  1.1  jtc 			      int (*)(const void *, const void *)));
     45  1.1  jtc extern void	 insque __P((void *, void *));
     46  1.1  jtc extern void	 remque __P((void *));
     47  1.8  jtc 
     48  1.8  jtc extern void	*tdelete __P((const void *, void **,
     49  1.8  jtc 			      int (*)(const void *, const void *)));
     50  1.8  jtc extern void	*tfind __P((const void *, void **,
     51  1.8  jtc 			      int (*)(const void *, const void *)));
     52  1.8  jtc extern void	*tsearch __P((const void *, void **,
     53  1.8  jtc 			      int (*)(const void *, const void *)));
     54  1.8  jtc extern void      twalk __P((const void *, void (*)(const void *, VISIT, int)));
     55  1.1  jtc __END_DECLS
     56  1.1  jtc 
     57  1.1  jtc #endif
     58