home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 4 / DATAFILE_PDCD4.iso / unix / riscbsd / sources / src_tgz / src_tgz~ / src / include / search.h < prev    next >
C/C++ Source or Header  |  1995-10-13  |  1KB  |  58 lines

  1. /*    $NetBSD: search.h,v 1.9 1995/08/08 21:14:45 jtc Exp $    */
  2.  
  3. /*
  4.  * Written by J.T. Conklin <jtc@netbsd.org>
  5.  * Public domain.
  6.  */
  7.  
  8. #ifndef _SEARCH_H_
  9. #define _SEARCH_H_
  10. #include <sys/cdefs.h>
  11. #include <machine/ansi.h>
  12.  
  13. #ifdef    _BSD_SIZE_T_
  14. typedef    _BSD_SIZE_T_    size_t;
  15. #undef    _BSD_SIZE_T_
  16. #endif
  17.  
  18. typedef struct entry {
  19.     char *key;
  20.     char *data;
  21. } ENTRY;
  22.  
  23. typedef enum {
  24.     FIND, ENTER
  25. } ACTION;
  26.  
  27. typedef enum {
  28.     preorder,
  29.     postorder,
  30.     endorder,
  31.     leaf
  32. } VISIT;
  33.  
  34. __BEGIN_DECLS
  35. extern void    *bsearch __P((const void *, const void *, size_t, size_t,
  36.                   int (*)(const void *, const void *)));
  37. extern int     hcreate __P((unsigned int));
  38. extern void     hdestroy __P((void));
  39. extern ENTRY    *hsearch __P((ENTRY, ACTION));
  40.  
  41. extern void    *lfind __P((const void *, const void *, size_t *, size_t,
  42.                   int (*)(const void *, const void *)));
  43. extern void    *lsearch __P((const void *, const void *, size_t *, size_t,
  44.                   int (*)(const void *, const void *)));
  45. extern void     insque __P((void *, void *));
  46. extern void     remque __P((void *));
  47.  
  48. extern void    *tdelete __P((const void *, void **,
  49.                   int (*)(const void *, const void *)));
  50. extern void    *tfind __P((const void *, void **,
  51.                   int (*)(const void *, const void *)));
  52. extern void    *tsearch __P((const void *, void **, 
  53.                   int (*)(const void *, const void *)));
  54. extern void      twalk __P((const void *, void (*)(const void *, VISIT, int)));
  55. __END_DECLS
  56.  
  57. #endif
  58.