1
/* $NetBSD: search.h,v 1.12 1999/02/22 10:34:28 christos Exp $ */
2
/* $FreeBSD: src/include/search.h,v 1.4 2002/03/23 17:24:53 imp Exp $ */
5
* Written by J.T. Conklin <jtc@netbsd.org>
12
#include <sys/cdefs.h>
13
#include <machine/ansi.h>
14
#include <sys/types.h>
16
typedef struct entry {
11
#include <bits/alltypes.h>
13
typedef enum { FIND, ENTER } ACTION;
14
typedef enum { preorder, postorder, endorder, leaf } VISIT;
32
#ifdef _SEARCH_PRIVATE
35
struct node *llink, *rlink;
41
struct internal_head *htable;
23
ENTRY *hsearch(ENTRY, ACTION);
25
void insque(void *, void *);
28
void *lsearch(const void *, void *, size_t *, size_t,
29
int (*)(const void *, const void *));
30
void *lfind(const void *, const void *, size_t *, size_t,
31
int (*)(const void *, const void *));
33
void *tdelete(const void *__restrict, void **__restrict, int(*)(const void *, const void *));
34
void *tfind(const void *, void *const *, int(*)(const void *, const void *));
35
void *tsearch(const void *, void **, int (*)(const void *, const void *));
36
void twalk(const void *, void (*)(const void *, VISIT, int));
40
struct qelem *q_forw, *q_back;
48
ENTRY *hsearch(ENTRY, ACTION);
49
int hcreate_r(size_t, struct hsearch_data *);
50
void hdestroy_r(struct hsearch_data *);
51
int hsearch_r(ENTRY, ACTION, ENTRY **, struct hsearch_data *);
52
void *tdelete(const void *, void **, int (*)(const void *, const void *));
53
void tdestroy (void *, void (*)(void *));
54
void *tfind(const void *, void **, int (*)(const void *, const void *));
55
void *tsearch(const void *, void **, int (*)(const void *, const void *));
56
void twalk(const void *, void (*)(const void *, VISIT, int));
59
#endif /* !_SEARCH_H_ */
44
void tdestroy(void *, void (*)(void *));