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 / dlist2.cpp < prev    next >
C/C++ Source or Header  |  1996-05-11  |  4KB  |  108 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. ** Double Linked List - Non Templates Version
  28. */
  29.  
  30. void WBExecuteFunct(void *nullitem, char *item)
  31.   {
  32.     nullitem = nullitem;
  33.     cout << "Execute: " << item << "\n";
  34.   }
  35.  
  36. int WBCompareFunct(void *nullitem, char *item1, char *item2)
  37.   {
  38.     nullitem = nullitem;
  39.     return(strcmp(item1,item2));
  40.   }
  41.  
  42. char *WBCopyFunct(void *nullitem, char *item)
  43.   {
  44.     nullitem = nullitem;
  45.     return(item);
  46.   }
  47.  
  48. main()
  49.   {
  50.     WBDList dlist, ptr1, ptr2, cutlist, copylist, pastelist;
  51.  
  52.     dlist.SetCompare(NULL,(int (*)(void *, void *, void *))WBCompareFunct);
  53.     dlist.SetExecute(NULL,(void (*)(void *, void *))WBExecuteFunct);
  54.     cutlist.SetExecute(NULL,(void (*)(void *, void *))WBExecuteFunct);
  55.     copylist.SetExecute(NULL,(void (*)(void *, void *))WBExecuteFunct);
  56.     pastelist.SetCompare(NULL,(int (*)(void *, void *, void *))WBCompareFunct);
  57.     pastelist.SetExecute(NULL,(void (*)(void *, void *))WBExecuteFunct);
  58.  
  59.     cout << "IsEmpty(): " << dlist.IsEmpty() << "\n";
  60.     dlist.AddSorted("Item5");
  61.     dlist.AddSorted("Item6");
  62.     dlist.AddSorted("Item7");
  63.     dlist.AddSorted("Item3");
  64.     dlist.AddSorted("Item4");
  65.     dlist.AddSorted("Item8");
  66.     dlist.AddSorted("Item9");
  67.     dlist.AddSorted("Item0");
  68.     dlist.AddSorted("Item1");
  69.     dlist.AddSorted("Item2");
  70.     cout << "=============================================\n";
  71.     dlist.Execute();
  72.  
  73.     cout << "=================== Cut List ================\n";
  74.     dlist.GetFirst();
  75.     dlist++;
  76.     dlist++;
  77.     ptr1 = dlist;
  78.     dlist++;
  79.     dlist++;
  80.     ptr2 = dlist;
  81.     cutlist.Cut(ptr1,ptr2);
  82.     cutlist.Execute();
  83.  
  84.     cout << "=================== Copy List ================\n";
  85.     dlist.GetFirst();
  86.     dlist++;
  87.     dlist++;
  88.     ptr1 = dlist;
  89.     dlist++;
  90.     dlist++;
  91.     ptr2 = dlist;
  92.     copylist.Copy(ptr1,ptr2);
  93.     copylist.Execute();
  94.  
  95.     cout << "=================== Paste List ================\n";
  96.     pastelist.PasteFirst(dlist,0);
  97.     pastelist.Execute();
  98.     cout << "GetCurrent(): " << (char *) pastelist.GetCurrent() << "\n";
  99.  
  100.     cout << "=================== Paste List ================\n";
  101.     pastelist++;
  102.     pastelist.PasteSorted(cutlist,0);
  103.     pastelist.Execute();
  104.     cout << "GetCurrent(): " << (char *) pastelist.GetCurrent() << "\n";
  105.  
  106.     return(0);
  107.   }
  108.