Home | History | Annotate | Line # | Download | only in include
search.h revision 1.10
      1  1.10  kleink /*	$NetBSD: search.h,v 1.10 1999/02/16 18:12:24 kleink 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.10  kleink extern int	 hcreate __P((size_t));
     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