home *** CD-ROM | disk | FTP | other *** search
- /***************************************************************************\
- ** **
- ** WW WW IIIIIIII NNN NN DDDDDDD BBBBBBB AA SSSSSS EEEEEEEE **
- ** WW W WW II NNNN NN DD DD BB BB AA AA SS EE **
- ** WW W WW II NN NN NN DD DD BBBBBBB AAAAAAAA SSSSSS EEEEEE **
- ** WW W WW II NN NNNN DD DD BB BB AA AA SS EE **
- ** WWWWW IIIIIIII NN NNN DDDDDDD BBBBBBB AA AA SSSSSS EEEEEEEE **
- ** **
- ** SSSSSS OOOOOO FFFFFFFF TTTTTTTT WW WW AA RRRRRRR EEEEEEEE **
- ** SS OO OO FF TT WW W WW AA AA RR RR EE **
- ** SSSSS OO OO FFFFF TT WW W WW AAAAAAAA RRRRRRR EEEEEE **
- ** SS OO OO FF TT WW W WW AA AA RR RR EE **
- ** SSSSSS OOOOOO FF TT WWWWW AA AA RR RR EEEEEEEE **
- ** **
- ********** NOTICE ***********************************************************
- ** This file contains valuable trade secrets and proprietary **
- ** assets of Windbase Software Inc. Embodying substantial **
- ** creative efforts and confidential information. Unauthorized **
- ** use, copying, decompiling, translating, disclosure or **
- ** transfer, of any kind, is strictly prohibited. **
- ** **
- ** COPYRIGHT (C) 1992, 1993, 1994, 1995. Windbase Software Inc. **
- ** ALL RIGHTS RESERVED. **
- \***************************************************************************/
-
- /*
- ** Hashing Table with Seperate Chaining - Templates Version
- */
-
- template <class USRDEF>
- class MyHash : public WBHash<USRDEF>
- {
- unsigned int WBHashingFunct(void *nullitem, char *item);
-
- void WBExecuteFunct(void *nullitem, char *item)
- {
- nullitem = nullitem;
- cout << "Execute: " << item << "\n";
- }
-
- void WBDeleteFunct(void *nullitem, char *item)
- {
- nullitem = nullitem;
- cout << "Delete: " << item << "\n";
- }
-
- int WBCompareFunct(void *nullitem, char *item1, char *item2)
- {
- nullitem = nullitem;
- return(strcmp(item1,item2));
- }
-
- public:
- MyHash(int size) : WBHash<USRDEF>(size) {}
- };
-
- template <class USRDEF>
- unsigned int MyHash<USRDEF>::WBHashingFunct(void *nullitem, char *item)
- {
- unsigned int i, val = 0;
-
- nullitem = nullitem;
- for (i = 0; i < strlen(item); i++)
- val += item[i];
- return(val);
- }
-
- main()
- {
- MyHash<char *> hash(10);
-
- hash.Add("Test0");
- hash.Add("Test1");
- hash.Add("Test2");
- hash.Add("Test3");
- hash.Add("Test4");
- hash.Add("Test5");
- hash.Add("Test6");
- hash += "Test7";
- hash += "Test8";
- hash += "Test9";
- hash += "Test4";
- hash += "Test1";
- hash += "Test2";
- hash += "Test3";
-
- cout << "Num Items: " << hash.NumItems() << "\n";
- hash.Delete("Test4");
- hash -= "Test5";
- cout << "Search: " << hash.Search("Test6") << "\n";
- hash.DelNode();
- hash.DelNode();
- cout << "Num Items: " << hash.NumItems() << "\n";
- hash.Execute();
- cout << "Is Empty: " << (hash.IsEmpty() ? "Yes" : "No") << "\n";
- hash.Clear();
- cout << "Is Empty: " << (hash.IsEmpty() ? "Yes" : "No") << "\n";
- cout << "Num Items: " << hash.NumItems() << "\n";
- hash.Execute();
-
- return(0);
- }
-