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
/
hash2.cpp
< prev
next >
Wrap
C/C++ Source or Header
|
1995-11-03
|
4KB
|
98 lines
/***************************************************************************\
** **
** 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 - Non Templates Version
*/
unsigned int WBHashingFunct(void *nullitem, char *item)
{
unsigned int i, val = 0;
nullitem = nullitem;
for (i = 0; i < strlen(item); i++)
val += item[i];
return(val);
}
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));
}
main()
{
WBHash hash(10);
hash.SetHashing(NULL,(unsigned int (*)(void *, void *))WBHashingFunct);
hash.SetCompare(NULL,(int (*)(void *, void *, void *))WBCompareFunct);
hash.SetDelete(NULL,(void (*)(void *, void *))WBDeleteFunct);
hash.SetExecute(NULL,(void (*)(void *, void *))WBExecuteFunct);
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: " << (char *) 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);
}