Subversion Repositories pentevo

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

  1. #ifndef _TREES_H
  2. #define _TREES_H
  3. /* trees.h */
  4. /*****************************************************************************/
  5. /* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only                     */
  6. /*                                                                           */
  7. /* AS-Portierung                                                             */
  8. /*                                                                           */
  9. /* Tree management                                                           */
  10. /*                                                                           */
  11. /*****************************************************************************/
  12.  
  13. extern Boolean BalanceTrees;
  14.  
  15. typedef struct _TTree
  16. {
  17.   struct _TTree *Left, *Right;
  18.   ShortInt Balance;
  19.   char *Name;
  20.   LongInt Attribute;
  21. } TTree, *PTree;
  22.  
  23. typedef void (*TTreeCallback)(PTree Node, void *pData);
  24.  
  25. typedef Boolean (*TTreeAdder)(PTree *PDest, PTree Neu, void *pData);
  26.  
  27. extern void IterTree(PTree Tree, TTreeCallback Callback, void *pData);
  28.  
  29. extern void GetTreeDepth(PTree Tree, LongInt *pMin, LongInt *pMax);
  30.  
  31. extern void DestroyTree(PTree *Tree, TTreeCallback Callback, void *pData);
  32.  
  33. extern void DumpTree(PTree Tree);
  34.  
  35. extern PTree SearchTree(PTree Tree, const char *Name, LongInt Attribute);
  36.  
  37. extern Boolean EnterTree(PTree *PDest, PTree Neu, TTreeAdder Adder, void *pData);
  38.  
  39. #endif /* _TREES_H */
  40.