home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / dev / m2 / CycloneModules.lha / OOModules / txt / trees.def < prev    next >
Text File  |  1996-05-17  |  1KB  |  44 lines

  1. DEFINITION MODULE Trees;
  2.  
  3. (* Copyright (C) 1996 by Marcel Timmermans *)
  4.  
  5. (* A example of a tree object *)
  6.  
  7.  
  8. FROM SYSTEM IMPORT ADDRESS;
  9. FROM Objects IMPORT TObject;
  10.  
  11. CONST 
  12.   cmpLess=-1;
  13.   cmpEqual=0;
  14.   cmpMore=1;
  15.  
  16. TYPE
  17.  NodePtr = POINTER TO Node;
  18.  Node = RECORD
  19.           left:NodePtr;
  20.           right:NodePtr;
  21.           data:ADDRESS;
  22.         END;
  23.  
  24. TTree = CLASS(TObject)
  25.          root:NodePtr;
  26.          PROCEDURE Compare(d:ADDRESS;node:NodePtr):INTEGER;
  27.          PROCEDURE FindComp(d:ADDRESS;node:NodePtr):INTEGER;
  28.          PROCEDURE DoProc(d:ADDRESS);
  29.          PROCEDURE NewItem(d:ADDRESS):NodePtr;
  30.          PROCEDURE Remove(n:NodePtr):ADDRESS;
  31.          PROCEDURE Insert(n:NodePtr;d:ADDRESS):NodePtr;
  32.          PROCEDURE Find(n:NodePtr;d:ADDRESS):NodePtr;
  33.          PROCEDURE Min(tree:NodePtr):NodePtr;
  34.          PROCEDURE FindPred(head:NodePtr; d:ADDRESS; VAR Left:BOOLEAN):NodePtr;
  35.          PROCEDURE Delete(n,del:NodePtr):NodePtr;
  36.          PROCEDURE CountElements():LONGINT; 
  37.          PROCEDURE WalkTree(t:NodePtr);
  38.          PROCEDURE FreeData(d:ADDRESS);
  39.          PROCEDURE DestroyTree(VAR t:NodePtr);
  40.         END;
  41.          
  42.  
  43. END Trees.
  44.