home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / radi116c.zip / radius116c / src / radius / tree.h < prev    next >
C/C++ Source or Header  |  1999-01-01  |  1KB  |  58 lines

  1. /* tree.h - declare structures used by tree library
  2.  *
  3.  * vix 22jan93 [revisited; uses RCS, ANSI, POSIX; has bug fixes]
  4.  * vix 27jun86 [broken out of tree.c]
  5.  *
  6.  * $Id: tree.h,v 8.2 1996/10/25 18:11:03 vixie Exp $
  7.  */
  8.  
  9.  
  10. #ifndef    _TREE_H_INCLUDED
  11. #define    _TREE_H_INCLUDED
  12.  
  13. #ifndef __P
  14. # if defined(__STDC__) || defined(__GNUC__) || defined(__IBMCPP__)
  15. #  define __P(x) x
  16. # else
  17. #  define __P(x) ()
  18. # endif
  19. #endif
  20.  
  21. #if __cplusplus
  22. extern "C" {
  23. #endif
  24.  
  25.  
  26.  
  27. /*
  28.  * tree_t is our package-specific anonymous pointer.
  29.  */
  30. #if defined(__STDC__) || defined(__GNUC__)
  31. typedef    void *tree_t;
  32. #else
  33. typedef    char *tree_t;
  34. #endif
  35.  
  36.  
  37. typedef    struct tree_s {
  38.         tree_t        data;
  39.         struct tree_s    *left, *right;
  40.         short        bal;
  41.     }
  42.     tree;
  43.  
  44.  
  45. void    tree_init    __P((tree **));
  46. tree_t    tree_srch    __P((tree **, int (*)(), tree_t));
  47. tree_t    tree_add    __P((tree **, int (*)(), tree_t, void (*)()));
  48. int    tree_delete    __P((tree **, int (*)(), tree_t, void (*)()));
  49. int    tree_trav    __P((tree **, int (__cdecl *)(char *)));
  50. void    tree_mung    __P((tree **, void (*)()));
  51.  
  52. #if __cplusplus
  53.       }
  54. #endif
  55.        
  56.  
  57. #endif    /* _TREE_H_INCLUDED */
  58.