search.h revision 62321
162321Salfred/* $NetBSD: search.h,v 1.12 1999/02/22 10:34:28 christos Exp $ */ 262321Salfred/* $FreeBSD: head/include/search.h 62321 2000-07-01 06:55:11Z alfred $ */ 362321Salfred 462321Salfred/* 562321Salfred * Written by J.T. Conklin <jtc@netbsd.org> 662321Salfred * Public domain. 762321Salfred */ 862321Salfred 962321Salfred#ifndef _SEARCH_H_ 1062321Salfred#define _SEARCH_H_ 1162321Salfred 1262321Salfred#include <sys/cdefs.h> 1362321Salfred#include <machine/ansi.h> 1462321Salfred 1562321Salfred#ifdef _BSD_SIZE_T_ 1662321Salfredtypedef _BSD_SIZE_T_ size_t; 1762321Salfred#undef _BSD_SIZE_T_ 1862321Salfred#endif 1962321Salfred 2062321Salfredtypedef struct entry { 2162321Salfred char *key; 2262321Salfred void *data; 2362321Salfred} ENTRY; 2462321Salfred 2562321Salfredtypedef enum { 2662321Salfred FIND, ENTER 2762321Salfred} ACTION; 2862321Salfred 2962321Salfredtypedef enum { 3062321Salfred preorder, 3162321Salfred postorder, 3262321Salfred endorder, 3362321Salfred leaf 3462321Salfred} VISIT; 3562321Salfred 3662321Salfred#ifdef _SEARCH_PRIVATE 3762321Salfredtypedef struct node { 3862321Salfred char *key; 3962321Salfred struct node *llink, *rlink; 4062321Salfred} node_t; 4162321Salfred#endif 4262321Salfred 4362321Salfred__BEGIN_DECLS 4462321Salfredvoid *bsearch __P((const void *, const void *, size_t, size_t, 4562321Salfred int (*)(const void *, const void *))); 4662321Salfredint hcreate __P((size_t)); 4762321Salfredvoid hdestroy __P((void)); 4862321SalfredENTRY *hsearch __P((ENTRY, ACTION)); 4962321Salfred 5062321Salfredvoid *lfind __P((const void *, const void *, size_t *, size_t, 5162321Salfred int (*)(const void *, const void *))); 5262321Salfredvoid *lsearch __P((const void *, const void *, size_t *, size_t, 5362321Salfred int (*)(const void *, const void *))); 5462321Salfredvoid insque __P((void *, void *)); 5562321Salfredvoid remque __P((void *)); 5662321Salfred 5762321Salfredvoid *tdelete __P((const void *, void **, 5862321Salfred int (*)(const void *, const void *))); 5962321Salfredvoid *tfind __P((const void *, void **, 6062321Salfred int (*)(const void *, const void *))); 6162321Salfredvoid *tsearch __P((const void *, void **, 6262321Salfred int (*)(const void *, const void *))); 6362321Salfredvoid twalk __P((const void *, void (*)(const void *, VISIT, int))); 6462321Salfred__END_DECLS 6562321Salfred 6662321Salfred#endif /* !_SEARCH_H_ */ 67