home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 02 / grdlagen / tree.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-12-11  |  1.2 KB  |  45 lines

  1. //----------------------------------------------------------
  2. //                        TREE.H                           -
  3. //        (c) 1991 by Thole Groeneveld & toolbox           -
  4. //----------------------------------------------------------
  5.  
  6. #ifndef __TREE_H
  7. #define __TREE_H
  8.  
  9. #include <iostream.h>                 // Definition von NULL
  10.  
  11. class Node {
  12. friend class Tree;
  13. public:
  14.  Node() : right(NULL), left(NULL) { };
  15.  virtual ~Node() { };
  16.  virtual int operator < (Node&) = 0;
  17.  virtual int operator > (Node&) = 0;
  18.  virtual void equal (Node*) = 0;
  19.  virtual void action() = 0;
  20. private:
  21.  Node *right, *left;
  22. };
  23.  
  24.  
  25. class Tree {
  26. public:
  27.  Tree() : Root(NULL) { };
  28.  ~Tree() { destroy (Root); };
  29.  void insert (Node* n) { insert (n, Root); };
  30.  int  remove (Node& n) { return remove (n, Root); };
  31.  void walk () { walk (Root); };
  32.  Node *search (Node&);
  33. private:
  34.  Node *Root;
  35.  // - - - - - - -  Node*& : Referenz auf Zeiger vom Typ Node
  36.  void insert (Node*, Node*&);
  37.  int  remove (Node&, Node*&);
  38.  void walk (Node*);
  39.  void destroy (Node*);
  40. };
  41.  
  42. #endif
  43. //----------------------------------------------------------
  44. //                    Ende von TREE.H                      -
  45.