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