1/*-
2 * Written by J.T. Conklin <jtc@netbsd.org>
3 * Public domain.
4 *
5 *	$NetBSD: search.h,v 1.12 1999/02/22 10:34:28 christos Exp $
6 * $FreeBSD: release/9.0.0/include/search.h 105250 2002-10-16 14:29:23Z robert $
7 */
8
9#ifndef _SEARCH_H_
10#define _SEARCH_H_
11
12#include <sys/cdefs.h>
13#include <sys/_types.h>
14
15#if 0
16#ifndef _SIZE_T_DECLARED
17typedef	__size_t	size_t;
18#define	_SIZE_T_DECLARED
19#endif
20#endif
21
22typedef	enum {
23	preorder,
24	postorder,
25	endorder,
26	leaf
27} VISIT;
28
29#ifdef _SEARCH_PRIVATE
30typedef	struct node {
31	char         *key;
32	struct node  *llink, *rlink;
33} node_t;
34#endif
35
36__BEGIN_DECLS
37void	*tdelete(const void * __restrict, void ** __restrict,
38	    int (*)(const void *, const void *));
39void	*tfind(const void *, void * const *,
40	    int (*)(const void *, const void *));
41void	*tsearch(const void *, void **, int (*)(const void *, const void *));
42void	 twalk(const void *, void (*)(const void *, VISIT, int));
43void	 tdestroy(void *, void (*)(void *));
44__END_DECLS
45
46#endif /* !_SEARCH_H_ */
47