Home | History | Annotate | Line # | Download | only in include
search.h revision 1.12.8.1
      1  1.12.8.1   minoura /*	$NetBSD: search.h,v 1.12.8.1 2000/06/23 15:45:58 minoura 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.11    kleink 
     11       1.2       jtc #include <sys/cdefs.h>
     12       1.2       jtc #include <machine/ansi.h>
     13       1.1       jtc 
     14       1.5       cgd #ifdef	_BSD_SIZE_T_
     15       1.5       cgd typedef	_BSD_SIZE_T_	size_t;
     16       1.5       cgd #undef	_BSD_SIZE_T_
     17       1.2       jtc #endif
     18       1.1       jtc 
     19       1.9       jtc typedef struct entry {
     20       1.9       jtc 	char *key;
     21      1.11    kleink 	void *data;
     22       1.9       jtc } ENTRY;
     23       1.9       jtc 
     24       1.9       jtc typedef enum {
     25       1.9       jtc 	FIND, ENTER
     26       1.9       jtc } ACTION;
     27       1.9       jtc 
     28       1.8       jtc typedef enum {
     29       1.8       jtc 	preorder,
     30       1.8       jtc 	postorder,
     31       1.8       jtc 	endorder,
     32       1.8       jtc 	leaf
     33       1.8       jtc } VISIT;
     34      1.12  christos 
     35      1.12  christos #ifdef _SEARCH_PRIVATE
     36      1.12  christos typedef struct node {
     37      1.12  christos 	char         *key;
     38      1.12  christos 	struct node  *llink, *rlink;
     39      1.12  christos } node_t;
     40      1.12  christos #endif
     41       1.8       jtc 
     42       1.1       jtc __BEGIN_DECLS
     43  1.12.8.1   minoura void	*bsearch __P((const void *, const void *, size_t, size_t,
     44  1.12.8.1   minoura 		      int (*)(const void *, const void *)));
     45  1.12.8.1   minoura int	 hcreate __P((size_t));
     46  1.12.8.1   minoura void	 hdestroy __P((void));
     47  1.12.8.1   minoura ENTRY	*hsearch __P((ENTRY, ACTION));
     48  1.12.8.1   minoura 
     49  1.12.8.1   minoura void	*lfind __P((const void *, const void *, size_t *, size_t,
     50  1.12.8.1   minoura 		      int (*)(const void *, const void *)));
     51  1.12.8.1   minoura void	*lsearch __P((const void *, const void *, size_t *, size_t,
     52  1.12.8.1   minoura 		      int (*)(const void *, const void *)));
     53  1.12.8.1   minoura void	 insque __P((void *, void *));
     54  1.12.8.1   minoura void	 remque __P((void *));
     55  1.12.8.1   minoura 
     56  1.12.8.1   minoura void	*tdelete __P((const void *, void **,
     57  1.12.8.1   minoura 		      int (*)(const void *, const void *)));
     58  1.12.8.1   minoura void	*tfind __P((const void *, void **,
     59  1.12.8.1   minoura 		      int (*)(const void *, const void *)));
     60  1.12.8.1   minoura void	*tsearch __P((const void *, void **,
     61  1.12.8.1   minoura 		      int (*)(const void *, const void *)));
     62  1.12.8.1   minoura void      twalk __P((const void *, void (*)(const void *, VISIT, int)));
     63       1.1       jtc __END_DECLS
     64       1.1       jtc 
     65      1.11    kleink #endif /* !_SEARCH_H_ */
     66