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 / phash2.cpp < prev    next >
C/C++ Source or Header  |  1995-11-03  |  14KB  |  322 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. ** Hashing Table with Paging and Seperate Chaining - Non Templates Version
  28. */
  29.  
  30. unsigned int WBHashingFunct(void *nullitem, char *item)
  31.   {
  32.     unsigned int i, val = 0;
  33.  
  34.     nullitem = nullitem;
  35.  
  36.     for (i = 0; i < strlen(item); i++)
  37.       val += item[i];
  38.  
  39.     return(val);
  40.   }
  41.  
  42. void WBExecuteFunct(void *nullitem, char *item)
  43.   {
  44.     nullitem = nullitem;
  45.     cout << "Execute: " << item << "\n";
  46.   }
  47.  
  48. int WBCompareFunct(void *nullitem, char *item1, char *item2)
  49.   {
  50.     nullitem = nullitem;
  51.     return(strcmp(item1,item2));
  52.   }
  53.  
  54. main()
  55.   {
  56.     WBPHash hash(5,5);
  57.     int i;
  58.  
  59.     hash.SetHashing(NULL,(unsigned int (*)(void *, void *))WBHashingFunct);
  60.     hash.SetCompare(NULL,(int (*)(void *, void *, void *))WBCompareFunct);
  61.     hash.SetExecute(NULL,(void (*)(void *, void *))WBExecuteFunct);
  62.  
  63.     for (i = 0; i < 20; i++)
  64.       {
  65.     hash += "Test0";
  66.     hash += "Test1";
  67.     hash += "Test2";
  68.     hash += "Test3";
  69.     hash += "Test4";
  70.     hash += "Test5";
  71.     hash += "Test6";
  72.     hash += "Test7";
  73.     hash += "Test8";
  74.     hash += "Test9";
  75.     hash.Add("Test10");
  76.     hash.Add("Test11");
  77.     hash.Add("Test12");
  78.     hash.Add("Test13");
  79.     hash.Add("Test14");
  80.     hash.Add("Test15");
  81.     hash.Add("Test16");
  82.     hash.Add("Test17");
  83.     hash.Add("Test18");
  84.     hash.Add("Test19");
  85.     hash.Add("Test20");
  86.     hash.Add("Test21");
  87.     hash.Add("Test22");
  88.     hash.Add("Test23");
  89.     hash.Add("Test24");
  90.     hash.Add("Test25");
  91.     hash.Add("Test26");
  92.     hash.Add("Test27");
  93.     hash.Add("Test28");
  94.     hash.Add("Test29");
  95.     hash.Add("Test30");
  96.     hash.Add("Test31");
  97.     hash.Add("Test32");
  98.     hash.Add("Test33");
  99.     hash.Add("Test34");
  100.     hash.Add("Test35");
  101.     hash.Add("Test36");
  102.     hash.Add("Test37");
  103.     hash.Add("Test38");
  104.     hash.Add("Test39");
  105.     hash.Add("Test40");
  106.     hash.Add("Test41");
  107.     hash.Add("Test42");
  108.     hash.Add("Test43");
  109.     hash.Add("Test44");
  110.     hash.Add("Test45");
  111.     hash.Add("Test46");
  112.     hash.Add("Test47");
  113.     hash.Add("Test48");
  114.     hash.Add("Test49");
  115.     hash.Add("Test50");
  116.     hash.Add("Test51");
  117.     hash.Add("Test52");
  118.     hash.Add("Test53");
  119.     hash.Add("Test54");
  120.     hash.Add("Test55");
  121.     hash.Add("Test56");
  122.     hash.Add("Test57");
  123.     hash.Add("Test58");
  124.     hash.Add("Test59");
  125.     hash.Add("Test60");
  126.     hash.Add("Test61");
  127.     hash.Add("Test62");
  128.     hash.Add("Test63");
  129.     hash.Add("Test64");
  130.     hash.Add("Test65");
  131.     hash.Add("Test66");
  132.     hash.Add("Test67");
  133.     hash.Add("Test68");
  134.     hash.Add("Test69");
  135.     hash.Add("Test70");
  136.     hash.Add("Test71");
  137.     hash.Add("Test72");
  138.     hash.Add("Test73");
  139.     hash.Add("Test74");
  140.     hash.Add("Test75");
  141.     hash.Add("Test76");
  142.     hash.Add("Test77");
  143.     hash.Add("Test78");
  144.     hash.Add("Test79");
  145.     hash.Add("Test4");
  146.     hash.Add("Test1");
  147.     hash.Add("Test2");
  148.     hash.Add("Test3");
  149.     cout << "Num Items: " << hash.NumItems() << "\n";
  150.     cout << "Search: " << (char *) hash.Search("Test0") << "\n";
  151.     cout << "Search: " << (char *) hash.Search("Test1") << "\n";
  152.     cout << "Search: " << (char *) hash.Search("Test2") << "\n";
  153.     cout << "Search: " << (char *) hash.Search("Test3") << "\n";
  154.     cout << "Search: " << (char *) hash.Search("Test4") << "\n";
  155.     cout << "Search: " << (char *) hash.Search("Test5") << "\n";
  156.     cout << "Search: " << (char *) hash.Search("Test6") << "\n";
  157.     cout << "Search: " << (char *) hash.Search("Test7") << "\n";
  158.     cout << "Search: " << (char *) hash.Search("Test8") << "\n";
  159.     cout << "Search: " << (char *) hash.Search("Test9") << "\n";
  160.     cout << "Search: " << (char *) hash.Search("Test10") << "\n";
  161.     cout << "Search: " << (char *) hash.Search("Test11") << "\n";
  162.     cout << "Search: " << (char *) hash.Search("Test12") << "\n";
  163.     cout << "Search: " << (char *) hash.Search("Test13") << "\n";
  164.     cout << "Search: " << (char *) hash.Search("Test14") << "\n";
  165.     cout << "Search: " << (char *) hash.Search("Test15") << "\n";
  166.     cout << "Search: " << (char *) hash.Search("Test16") << "\n";
  167.     cout << "Search: " << (char *) hash.Search("Test17") << "\n";
  168.     cout << "Search: " << (char *) hash.Search("Test18") << "\n";
  169.     cout << "Search: " << (char *) hash.Search("Test19") << "\n";
  170.     cout << "Search: " << (char *) hash.Search("Test20") << "\n";
  171.     cout << "Search: " << (char *) hash.Search("Test21") << "\n";
  172.     cout << "Search: " << (char *) hash.Search("Test22") << "\n";
  173.     cout << "Search: " << (char *) hash.Search("Test23") << "\n";
  174.     cout << "Search: " << (char *) hash.Search("Test24") << "\n";
  175.     cout << "Search: " << (char *) hash.Search("Test25") << "\n";
  176.     cout << "Search: " << (char *) hash.Search("Test26") << "\n";
  177.     cout << "Search: " << (char *) hash.Search("Test27") << "\n";
  178.     cout << "Search: " << (char *) hash.Search("Test28") << "\n";
  179.     cout << "Search: " << (char *) hash.Search("Test29") << "\n";
  180.     cout << "Search: " << (char *) hash.Search("Test30") << "\n";
  181.     cout << "Search: " << (char *) hash.Search("Test31") << "\n";
  182.     cout << "Search: " << (char *) hash.Search("Test32") << "\n";
  183.     cout << "Search: " << (char *) hash.Search("Test33") << "\n";
  184.     cout << "Search: " << (char *) hash.Search("Test34") << "\n";
  185.     cout << "Search: " << (char *) hash.Search("Test35") << "\n";
  186.     cout << "Search: " << (char *) hash.Search("Test36") << "\n";
  187.     cout << "Search: " << (char *) hash.Search("Test37") << "\n";
  188.     cout << "Search: " << (char *) hash.Search("Test38") << "\n";
  189.     cout << "Search: " << (char *) hash.Search("Test39") << "\n";
  190.     cout << "Search: " << (char *) hash.Search("Test40") << "\n";
  191.     cout << "Search: " << (char *) hash.Search("Test41") << "\n";
  192.     cout << "Search: " << (char *) hash.Search("Test42") << "\n";
  193.     cout << "Search: " << (char *) hash.Search("Test43") << "\n";
  194.     cout << "Search: " << (char *) hash.Search("Test44") << "\n";
  195.     cout << "Search: " << (char *) hash.Search("Test45") << "\n";
  196.     cout << "Search: " << (char *) hash.Search("Test46") << "\n";
  197.     cout << "Search: " << (char *) hash.Search("Test47") << "\n";
  198.     cout << "Search: " << (char *) hash.Search("Test48") << "\n";
  199.     cout << "Search: " << (char *) hash.Search("Test49") << "\n";
  200.     cout << "Search: " << (char *) hash.Search("Test50") << "\n";
  201.     cout << "Search: " << (char *) hash.Search("Test51") << "\n";
  202.     cout << "Search: " << (char *) hash.Search("Test52") << "\n";
  203.     cout << "Search: " << (char *) hash.Search("Test53") << "\n";
  204.     cout << "Search: " << (char *) hash.Search("Test54") << "\n";
  205.     cout << "Search: " << (char *) hash.Search