home *** CD-ROM | disk | FTP | other *** search
/ C/C++ User's Journal & Wi…eveloper's Journal Tools / C-C__Users_Journal_and_Windows_Developers_Journal_Tools_1997.iso / windbase / memslcpp.3 / tavltre2.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1995-11-04  |  19.2 KB  |  446 lines

  1. /***************************************************************************\
  2. **                                                                         **
  3. ** WW     WW IIIIIIII NNN   NN DDDDDDD  BBBBBBB     AA     SSSSSS EEEEEEEE **
  4. ** WW  W  WW    II    NNNN  NN DD    DD BB    BB  AA  AA  SS      EE       **
  5. ** WW  W  WW    II    NN NN NN DD    DD BBBBBBB  AAAAAAAA  SSSSSS EEEEEE   **
  6. **  WW W WW     II    NN  NNNN DD    DD BB    BB AA    AA      SS EE       **
  7. **   WWWWW   IIIIIIII NN   NNN DDDDDDD  BBBBBBB  AA    AA SSSSSS  EEEEEEEE **
  8. **                                                                         **
  9. **  SSSSSS  OOOOOO  FFFFFFFF TTTTTTTT WW     WW    AA    RRRRRRR  EEEEEEEE **
  10. ** SS      OO    OO FF          TT    WW  W  WW  AA  AA  RR    RR EE       **
  11. **  SSSSS  OO    OO FFFFF       TT    WW  W  WW AAAAAAAA RRRRRRR  EEEEEE   **
  12. **      SS OO    OO FF          TT     WW W WW  AA    AA RR   RR  EE       **
  13. ** SSSSSS   OOOOOO  FF          TT      WWWWW   AA    AA RR    RR EEEEEEEE **
  14. **                                                                         **
  15. ********** NOTICE ***********************************************************
  16. **       This file contains valuable trade secrets and proprietary         **
  17. **       assets of Windbase Software Inc.  Embodying substantial           **
  18. **       creative efforts and confidential information.  Unauthorized      **
  19. **       use, copying, decompiling, translating, disclosure or             **
  20. **       transfer, of any kind, is strictly prohibited.                    **
  21. **                                                                         **
  22. **       COPYRIGHT (C) 1992, 1993, 1994, 1995.  Windbase Software Inc.     **
  23. **       ALL RIGHTS RESERVED.                                              **
  24. \***************************************************************************/
  25.  
  26. /*
  27. ** AVL Balanced Threaded Binary Tree - Non Templates Version
  28. */
  29.  
  30. int Compare(void *nullitem, char *item1, char *item2)
  31.   {
  32.     nullitem = nullitem;
  33.  
  34.     if (item1 == NULL || item2 == NULL)
  35.       {
  36.     cout << "Compare: null value.  Aborting...\n";
  37.     exit(1);
  38.       }
  39.     return(strcmp(item1,item2));
  40.   }
  41.  
  42. void Print(void *nullitem, char *item)
  43.   {
  44.     nullitem = nullitem;
  45.  
  46.     if (item)
  47.       cout << "Execute: " << item << "\n";
  48.     else
  49.       cout << "Execute: null value\n";
  50.   }
  51.  
  52. main()
  53.   {
  54.     WBTAVLTree tree;
  55.     char *strptr;
  56.     int i;
  57.  
  58.     tree.SetCompare(NULL,(int (*)(void *, void *, void *))Compare);
  59.     tree.SetExecute(NULL,(void (*)(void *, void *))Print);
  60.  
  61.     for (i = 0; i < 5; i++)
  62.       {
  63.     cout << "====================================================\n";
  64.     tree += "Item00";
  65.     tree += "Item01";
  66.     tree += "Item02";
  67.     tree += "Item03";
  68.     tree += "Item04";
  69.     tree += "Item05";
  70.     tree += "Item06";
  71.     tree += "Item07";
  72.     tree += "Item08";
  73.     tree += "Item09";
  74.     tree.Add("Item10");
  75.     tree.Add("Item11");
  76.     tree.Add("Item12");
  77.     tree.Add("Item13");
  78.     tree.Add("Item14");
  79.     tree.Add("Item15");
  80.     tree.Add("Item16");
  81.     tree.Add("Item17");
  82.     tree.Add("Item18");
  83.     tree.Add("Item19");
  84.     tree.Add("Item20");
  85.     tree.Add("Item21");
  86.     tree.Add("Item22");
  87.     tree.Add("Item23");
  88.     tree.Add("Item24");
  89.     tree.Add("Item25");
  90.     tree.Add("Item26");
  91.     tree.Add("Item27");
  92.     tree.Add("Item28");
  93.     tree.Add("Item29");
  94.     tree.Add("Item30");
  95.     tree.Add("Item31");
  96.     tree.Add("Item32");
  97.     tree.Add("Item33");
  98.     tree.Add("Item34");
  99.     tree.Add("Item35");
  100.     tree.Add("Item36");
  101.     tree.Add("Item37");
  102.     tree.Add("Item38");
  103.     tree.Add("Item39");
  104.     tree.Add("Item40");
  105.     tree.Add("Item41");
  106.     tree.Add("Item42");
  107.     tree.Add("Item43");
  108.     tree.Add("Item44");
  109.     tree.Add("Item45");
  110.     tree.Add("Item46");
  111.     tree.Add("Item47");
  112.     tree.Add("Item48");
  113.     tree.Add("Item49");
  114.     tree.Add("Item50");
  115.     tree.Add("Item51");
  116.     tree.Add("Item52");
  117.     tree.Add("Item53");
  118.     tree.Add("Item54");
  119.     tree.Add("Item55");
  120.     tree.Add("Item56");
  121.     tree.Add("Item57");
  122.     tree.Add("Item58");
  123.     tree.Add("Item59");
  124.     tree.Add("Item60");
  125.     tree.Add("Item61");
  126.     tree.Add("Item62");
  127.     tree.Add("Item63");
  128.     tree.Add("Item64");
  129.     tree.Add("Item65");
  130.     tree.Add("Item66");
  131.     tree.Add("Item67");
  132.     tree.Add("Item68");
  133.     tree.Add("Item69");
  134.     tree.Add("Item70");
  135.     tree.Add("Item71");
  136.     tree.Add("Item72");
  137.     tree.Add("Item73");
  138.     tree.Add("Item74");
  139.     tree.Add("Item75");
  140.     tree.Add("Item76");
  141.     tree.Add("Item77");
  142.     tree.Add("Item78");
  143.     tree.Add("Item79");
  144.     tree.Add("Item80");
  145.     tree.Add("Item81");
  146.     tree.Add("Item82");
  147.     tree.Add("Item83");
  148.     tree.Add("Item84");
  149.     tree.Add("Item85");
  150.     tree.Add("Item86");
  151.     tree.Add("Item87");
  152.     tree.Add("Item88");
  153.     tree.Add("Item89");
  154.     tree.Add("Item90");
  155.     tree.Add("Item91");
  156.     tree.Add("Item92");
  157.     tree.Add("Item93");
  158.     tree.Add("Item94");
  159.     tree.Add("Item95");
  160.     tree.Add("Item96");
  161.     tree.Add("Item97");
  162.     tree.Add("Item98");
  163.     tree.Add("Item99");
  164.     tree.Add("Item00");
  165.     tree.Add("Item01");
  166.     tree.Add("Item02");
  167.     tree.Add("Item03");
  168.     tree.Add("Item04");
  169.     tree.Add("Item05");
  170.     tree.Add("Item06");
  171.     tree.Add("Item07");
  172.     tree.Add("Item08");
  173.     tree.Add("Item09");
  174.     tree.Add("Item00");
  175.     tree.Add("Item01");
  176.     tree.Add("Item02");
  177.     tree.Add("Item03");
  178.     tree.Add("Item04");
  179.     tree.Add("Item05");
  180.     tree.Add("Item06");
  181.     tree.Add("Item07");
  182.     tree.Add("Item08");
  183.     tree.Add("Item09");
  184.     tree += "Item100";
  185.     tree += "Item101";
  186.     tree += "Item102";
  187.     tree += "Item103";
  188.     tree += "Item104";
  189.     tree += "Item105";
  190.     tree += "Item106";
  191.     tree += "Item107";
  192.     tree += "Item108";
  193.  
  194.     tree.Execute();
  195.  
  196.     cout << "GetLast(): " << (char *) tree.GetLast() << "\n";
  197.     cout << "GetFirst(): " << (char *) tree.GetFirst() << "\n";
  198.  
  199.     while ((strptr = (char *) tree.GetNext()) != NULL)
  200.       cout << "GetNext(): " << strptr << "\n";
  201.  
  202.     while ((strptr = (char *) tree.GetPrevious()) != NULL)
  203.       cout << "GetPrevious(): " << strptr << "\n";
  204.  
  205.     while ((strptr = (char *) tree++) != NULL)
  206.       cout << "tree++: " << strptr << "\n";
  207.  
  208.     while ((strptr = (char *) tree--) != NULL)
  209.       cout << "tree--: " << strptr << "\n";
  210.  
  211.     strptr = (char *) tree.GetFirst();
  212.     while ((strptr = (char *) tree.GetGreater(strptr)) != NULL)
  213.       cout << "GetGreater(): " << strptr << "\n";
  214.  
  215.     strptr = (char *) tree.GetLast();
  216.     while ((strptr = (char *) tree.GetLess(strptr)) != NULL)
  217.       cout << "GetLess(): " << strptr << "\n";
  218.  
  219.     cout << "GetLess(): " << (char *) tree.GetLess("Item01") << "\n";
  220.     while ((strptr = (char *) tree--) != NULL)
  221.       cout << "tree--: " << strptr << "\n";
  222.  
  223.     cout << "GetGreater(): " << (char *) tree.GetGreater("Item01") << "\n";
  224.     while ((strptr = (char *) tree++) != NULL)
  225.       cout << "tree++: " << strptr << "\n";
  226.  
  227.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item00") << "\n";
  228.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item01") << "\n";
  229.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item02") << "\n";
  230.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item03") << "\n";
  231.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item04") << "\n";
  232.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item05") << "\n";
  233.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item06") << "\n";
  234.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item07") << "\n";
  235.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item08") << "\n";
  236.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item09") << "\n";
  237.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item10") << "\n";
  238.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item11") << "\n";
  239.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item12") << "\n";
  240.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item13") << "\n";
  241.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item14") << "\n";
  242.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item15") << "\n";
  243.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item16") << "\n";
  244.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item17") << "\n";
  245.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item18") << "\n";
  246.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item19") << "\n";
  247.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item20") << "\n";
  248.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item21") << "\n";
  249.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item22") << "\n";
  250.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item23") << "\n";
  251.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item24") << "\n";
  252.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item25") << "\n";
  253.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item26") << "\n";
  254.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item27") << "\n";
  255.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item28") << "\n";
  256.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item29") << "\n";
  257.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item30") << "\n";
  258.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item31") << "\n";
  259.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item32") << "\n";
  260.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item33") << "\n";
  261.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item34") << "\n";
  262.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item35") << "\n";
  263.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item36") << "\n";
  264.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item37") << "\n";
  265.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item38") << "\n";
  266.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item39") << "\n";
  267.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item40") << "\n";
  268.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item41") << "\n";
  269.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item42") << "\n";
  270.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item43") << "\n";
  271.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item44") << "\n";
  272.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item45") << "\n";
  273.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item46") << "\n";
  274.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item47") << "\n";
  275.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item48") << "\n";
  276.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item49") << "\n";
  277.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item50") << "\n";
  278.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item51") << "\n";
  279.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item52") << "\n";
  280.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item53") << "\n";
  281.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item54") << "\n";
  282.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item55") << "\n";
  283.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item56") << "\n";
  284.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item57") << "\n";
  285.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item58") << "\n";
  286.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item59") << "\n";
  287.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item60") << "\n";
  288.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item61") << "\n";
  289.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item62") << "\n";
  290.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item63") << "\n";
  291.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item64") << "\n";
  292.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item65") << "\n";
  293.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item66") << "\n";
  294.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item67") << "\n";
  295.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item68") << "\n";
  296.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item69") << "\n";
  297.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item70") << "\n";
  298.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item71") << "\n";
  299.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item72") << "\n";
  300.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item73") << "\n";
  301.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item74") << "\n";
  302.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item75") << "\n";
  303.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item76") << "\n";
  304.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item77") << "\n";
  305.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item78") << "\n";
  306.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item79") << "\n";
  307.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item80") << "\n";
  308.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item81") << "\n";
  309.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item82") << "\n";
  310.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item83") << "\n";
  311.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item84") << "\n";
  312.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item85") << "\n";
  313.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item86") << "\n";
  314.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item87") << "\n";
  315.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item88") << "\n";
  316.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item89") << "\n";
  317.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item90") << "\n";
  318.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item91") << "\n";
  319.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item92") << "\n";
  320.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item93") << "\n";
  321.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item94") << "\n";
  322.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item95") << "\n";
  323.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item96") << "\n";
  324.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item97") << "\n";
  325.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item98") << "\n";
  326.     cout << "GetEqual(): " << (char *) tree.GetEqual("Item99") << "\n";
  327.  
  328.     cout << "Delete(): " << (tree -= "Item00") << "\n";
  329.     cout << "Delete(): " << (tree -= "Item01") << "\n";
  330.     cout << "Delete(): " << (tree -= "Item02") << "\n";
  331.     cout << "Delete(): " << (tree -= "Item03") << "\n";
  332.     cout << "Delete(): " << (tree -= "Item04") << "\n";
  333.     cout << "Delete(): " << (tree -= "Item05") << "\n";
  334.     cout << "Delete(): " << (tree -= "Item06") << "\n";
  335.     cout << "Delete(): " << (tree -= "Item07") << "\n";
  336.     cout << "Delete(): " << (tree -= "Item08") << "\n";
  337.     cout << "Delete(): " << (tree -= "Item09") << "\n";
  338.     cout << "Delete(): " << tree.Delete("Item10") << "\n";
  339.     cout << "Delete(): " << tree.Delete("Item11") << "\n";
  340.     cout << "Delete(): " << tree.Delete("Item12") << "\n";
  341.     cout << "Delete(): " << tree.Delete("Item13") << "\n";
  342.     cout << "Delete(): " << tree.Delete("Item14") << "\n";
  343.     cout << "Delete(): " << tree.Delete("Item15") << "\n";
  344.     cout << "Delete(): " << tree.Delete("Item16") << "\n";
  345.     cout << "Delete(): " << tree.Delete("Item17") << "\n";
  346.     cout << "Delete(): " << tree.Delete("Item18") << "\n";
  347.     cout << "Delete(): " << tree.Delete("Item19") << "\n";
  348.     cout << "Delete(): " << tree.Delete("Item20") << "\n";
  349.     cout << "Delete(): " << tree.Delete("Item21") << "\n";
  350.     cout << "Delete(): " << tree.Delete("Item22") << "\n";
  351.     cout << "Delete(): " << tree.Delete("Item23") << "\n";
  352.     cout << "Delete(): " << tree.Delete("Item24") << "\n";
  353.     cout << "Delete(): " << tree.Delete("Item25") << "\n";
  354.     cout << "Delete(): " << tree.Delete("Item26") << "\n";
  355.     cout << "Delete(): " << tree.Delete("Item27") << "\n";
  356.     cout << "Delete(): " << tree.Delete("Item28") << "\n";
  357.     cout << "Delete(): " << tree.Delete("Item29") << "\n";
  358.     cout << "Delete(): " << tree.Delete("Item30") << "\n";
  359.     cout << "Delete(): " << tree.Delete("Item31") << "\n";
  360.     cout << "Delete(): " << tree.Delete("Item32") << "\n";
  361.     cout << "Delete(): " << tree.Delete("Item33") << "\n";
  362.     cout << "Delete(): " << tree.Delete("Item34") << "\n";
  363.     cout << "Delete(): " << tree.Delete("Item35") << "\n";
  364.     cout << "Delete(): " << tree.Delete("Item36") << "\n";
  365.     cout << "Delete(): " << tree.Delete("Item37") << "\n";
  366.     cout << "Delete(): " << tree.Delete("Item38") << "\n";
  367.     cout << "Delete(): " << tree.Delete("Item39") << "\n";
  368.     cout << "Delete(): " << tree.Delete("Item40") << "\n";
  369.     cout << "Delete(): " << tree.Delete("Item41") << "\n";
  370.     cout << "Delete(): " << tree.Delete("Item42") << "\n";
  371.     cout << "Delete(): " << tree.Delete("Item43") << "\n";
  372.     cout << "Delete(): " << tree.Delete("Item44") << "\n";
  373.     cout << "Delete(): " << tree.Delete("Item45") << "\n";
  374.     cout << "Delete(): " << tree.Delete("Item46") << "\n";
  375.     cout << "Delete(): " << tree.Delete("Item47") << "\n";
  376.     cout << "Delete(): " << tree.Delete("Item48") << "\n";
  377.     cout << "Delete(): " << tree.Delete("Item49") << "\n";
  378.     cout << "Delete(): " << tree.Delete("Item50") << "\n";
  379.     cout << "Delete(): " << tree.Delete("Item51") << "\n";
  380.     cout << "Delete(): " << tree.Delete("Item52") << "\n";
  381.     cout << "Delete(): " << tree.Delete("Item53") << "\n";
  382.     cout << "Delete(): " << tree.Delete("Item54") << "\n";
  383.     cout << "Delete(): " << tree.Delete("Item55") << "\n";
  384.     cout << "Delete(): " << tree.Delete("Item56") << "\n";
  385.     cout << "Delete(): " << tree.Delete("Item57") << "\n";
  386.     cout << "Delete(): " << tree.Delete("Item58") << "\n";
  387.     cout << "Delete(): " << tree.Delete("Item59") << "\n";
  388.     cout << "Delete(): " << tree.Delete("Item60") << "\n";
  389.     cout << "Delete(): " << tree.Delete("Item61") << "\n";
  390.     cout << "Delete(): " << tree.Delete("Item62") << "\n";
  391.     cout << "Delete(): " << tree.Delete("Item63") << "\n";
  392.     cout << "Delete(): " << tree.Delete("Item64") << "\n";
  393.     cout << "Delete(): " << tree.Delete("Item65") << "\n";
  394.     cout << "Delete(): " << tree.Delete("Item66") << "\n";
  395.     cout << "Delete(): " << tree.Delete("Item67") << "\n";
  396.     cout << "Delete(): " << tree.Delete("Item68") << "\n";
  397.     cout << "Delete(): " << tree.Delete("Item69") << "\n";
  398.     cout << "Delete(): " << tree.Delete("Item70") << "\n";
  399.     cout << "Delete(): " << tree.Delete("Item71") << "\n";
  400.     cout << "Delete(): " << tree.Delete("Item72") << "\n";
  401.     cout << "Delete(): " << tree.Delete("Item73") << "\n";
  402.     cout << "Delete(): " << tree.Delete("Item74") << "\n";
  403.     cout << "Delete(): " << tree.Delete("Item75") << "\n";
  404.     cout << "Delete(): " << tree.Delete("Item76") << "\n";
  405.     cout << "Delete(): " << tree.Delete("Item77") << "\n";
  406.     cout << "Delete(): " << tree.Delete("Item78") << "\n";
  407.     cout << "Delete(): " << tree.Delete("Item79") << "\n";
  408.     cout << "Delete(): " << tree.Delete("Item80") << "\n";
  409.     cout << "Delete(): " << tree.Delete("Item81") << "\n";
  410.     cout << "Delete(): " << tree.Delete("Item82") << "\n";
  411.     cout << "Delete(): " << tree.Delete("Item83") << "\n";
  412.     cout << "Delete(): " << tree.Delete("Item84") << "\n";
  413.     cout << "Delete(): " << tree.Delete("Item85") << "\n";
  414.     cout << "Delete(): " << tree.Delete("Item86") << "\n";
  415.     cout << "Delete(): " << tree.Delete("Item87") << "\n";
  416.     cout << "Delete(): " << tree.Delete("Item88") << "\n";
  417.     cout << "Delete(): " << tree.Delete("Item89") << "\n";
  418.  
  419.     tree.Execute();
  420.  
  421.     cout << "GetLast(): " << (char *) tree.GetLast() << "\n";
  422.     cout << "GetFirst(): " << (char *) tree.GetFirst() << "\n";
  423.  
  424.     while ((strptr = (char *) tree.GetNext()) != NULL)
  425.       cout << "GetNext(): " << strptr << "\n";
  426.  
  427.     while ((strptr = (char *) tree.GetPrevious()) != NULL)
  428.       cout << "GetPrevious(): " << strptr << "\n";
  429.  
  430.     while ((strptr = (char *) tree++) != NULL)
  431.       cout << "tree++: " << strptr << "\n";
  432.  
  433.     while ((strptr = (char *) tree--) != NULL)
  434.       cout << "tree--: " << strptr << "\n";
  435.  
  436.     strptr = (char *) tree.GetFirst();
  437.     while ((strptr = (char *) tree.GetGreater(strptr)) != NULL)
  438.       cout << "GetGreater(): " << strptr << "\n";
  439.  
  440.     strptr = (char *) tree.GetLast();
  441.     while ((strptr = (char *) tree.GetLess(strptr)) != NULL)
  442.       cout << "GetLess(): " << strptr << "\n";
  443.       }
  444.     return(0);
  445.   }
  446.