home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / uccs / root.14 / udk / usr / include / search.h < prev    next >
C/C++ Source or Header  |  1998-08-19  |  2KB  |  74 lines

  1. /*
  2.  * Copyright (c) 1998 The Santa Cruz Operation, Inc.. All Rights Reserved. 
  3.  *                                                                         
  4.  *        THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF THE               
  5.  *                   SANTA CRUZ OPERATION INC.                             
  6.  *                                                                         
  7.  *   The copyright notice above does not evidence any actual or intended   
  8.  *   publication of such source code.                                      
  9.  */
  10.  
  11. #ifndef _SEARCH_H
  12. #define _SEARCH_H
  13. #ident    "@(#)sgs-head:common/head/search.h    1.3.3.5"
  14.  
  15. #ifndef _SIZE_T
  16. #   define _SIZE_T
  17.     typedef unsigned int    size_t;
  18. #endif
  19.  
  20. typedef enum {FIND, ENTER} ACTION;
  21.  
  22. typedef enum {preorder, postorder, endorder, leaf} VISIT;
  23.  
  24. typedef struct entry
  25. {
  26.     char    *key;
  27.     void    *data;
  28. } ENTRY;
  29.  
  30. #ifndef _XOPEN_SOURCE
  31. struct qelem
  32. {
  33.     struct qelem    *q_forw;
  34.     struct qelem    *q_back;
  35. };
  36. #endif
  37.  
  38. #ifdef __cplusplus
  39. extern "C" {
  40. #endif
  41.  
  42. extern int    hcreate(size_t);
  43. extern void    hdestroy(void);
  44. extern ENTRY    *hsearch(ENTRY, ACTION);
  45.  
  46. extern void    *lfind(const void *, const void *, size_t *, size_t,
  47.             int (*)(const void *, const void *));
  48. extern void    *lsearch(const void *, void *, size_t *, size_t,
  49.             int (*)(const void *, const void *));
  50.  
  51. extern void    *tdelete(const void *, void **,
  52.             int (*)(const void *, const void *));
  53. extern void    *tfind(const void *, void *const *,
  54.             int (*)(const void *, const void *));
  55. extern void    *tsearch(const void *, void **,
  56.             int (*)(const void *, const void *));
  57. extern void    twalk(const void *, void (*)(const void *, VISIT, int));
  58.  
  59. #ifndef _XOPEN_SOURCE
  60. extern void    *bsearch(const void *, const void *, size_t, size_t,
  61.             int (*)(const void *, const void *));
  62. extern void    insque(struct qelem *, struct qelem *);
  63. extern void    remque(struct qelem *);
  64. #elif defined(_XOPEN_SOURCE) && _XOPEN_SOURCE_EXTENDED - 0 >= 1
  65. extern void    insque(void *, void *);
  66. extern void    remque(void *);
  67. #endif /*_XOPEN_SOURCE*/
  68.  
  69. #ifdef __cplusplus
  70. }
  71. #endif
  72.  
  73. #endif /*_SEARCH_H*/
  74.