qPriLTreeLib.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:2k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* qPriLTreeLib.h - priority leftist tree queue library header */
  2. /* Copyright 1984-1992 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 02c,22sep92,rrr  added support for c++
  7. 02b,19jul92,pme  made qPriTreeRemove return STATUS.
  8. 02a,04jul92,jcf  cleaned up.
  9. 01f,26may92,rrr  the tree shuffle
  10. 01e,04oct91,rrr  passed through the ansification filter
  11.   -changed VOID to void
  12.   -changed copyright notice
  13. 01d,05oct90,shl  added ANSI function prototypes.
  14.  added copyright notice.
  15. 01c,10jul90,jcf  made priority key unsigned.
  16. 01b,26jun90,jcf  removed queue class definition.
  17. 01a,19oct89,jcf  created.
  18. */
  19. #ifndef __INCqPriLTreeLibh
  20. #define __INCqPriLTreeLibh
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24. #include "vxWorks.h"
  25. #include "qClass.h"
  26. /* type definitions */
  27. /* HIDDEN */
  28. typedef struct qPriLTreeNode /* Q_PRI_L_TREE_NODE */
  29.     {
  30.     struct qPriLTreeNode *left; /* pointer to left node in the tree */
  31.     struct qPriLTreeNode *right; /* pointer to right node in the tree */
  32.     int  distance; /* shortest distance to leaf */
  33.     ULONG  key; /* insertion key */
  34.     } Q_PRI_L_TREE_NODE;
  35. typedef struct /* Q_PRI_L_TREE_HEAD */
  36.     {
  37.     Q_PRI_L_TREE_NODE *pRoot; /* points to root of leftist tree */
  38.     int       count; /* number of nodes in tree */
  39.     } Q_PRI_L_TREE_HEAD;
  40. /* END_HIDDEN */
  41. /* function declarations */
  42. #if defined(__STDC__) || defined(__cplusplus)
  43. #else
  44. extern Q_PRI_L_TREE_HEAD * qPriLTreeCreate ();
  45. extern STATUS * qPriLTreeInit ();
  46. extern STATUS  qPriLTreeDelete ();
  47. extern void  qPriLTreePut ();
  48. extern Q_PRI_L_TREE_NODE * qPriLTreeGet ();
  49. extern STATUS  qPriLTreeRemove ();
  50. extern void  qPriLTreeResort ();
  51. extern void  qPriLTreeAdvance ();
  52. extern Q_PRI_L_TREE_NODE * qPriLTreeGetExpired ();
  53. extern ULONG  qPriLTreeKey ();
  54. extern int  qPriLTreeInfo ();
  55. extern Q_PRI_L_TREE_NODE * qPriLTreeEach ();
  56. #endif /* __STDC__ */
  57. #ifdef __cplusplus
  58. }
  59. #endif
  60. #endif /* __INCqPriLTreeLibh */