資源簡介
(1)每個人的信息至少包括姓名,電話,地址。至少包括對通訊錄的創建,添加和按姓名查找等功能。
(2)假設人名為漢語拼音全拼形式,待插入哈希表的長度為你所在班級的人數。哈希函數用除留余數法構造,采用鏈地址法或二次探測再散列法解決沖突。
(3)完成菜單設計。操作有必要的提示。
代碼片段和文件信息
#include?
#include?“math.h“
#include?“string.h“?
#include?“fstream“?
unsigned?int?Key1;?
unsigned?int?Key2;//Key1和Key2分別用電話號碼和姓名的關鍵字
using?namespace?std;//用來輸入/輸出流
#define?NULL?0
int?*p;?
struct?node?//建節點?
{?
????char?name[16]; //名字?
????char?address[20]; //地址?
????char?num[11];? //電話?
????node?*?next;? //結點指針?
};?
typedef?node*?pnode;?
typedef?node*?mingzi;?
node?**phone;? //指向結點指針phone的的指針?
node?**nam;? //指向結點指針nam的指針?
node?*a;?????
void?hash(char?num[11])?????//號哈希函數碼?
{??
????int?i?=?3;?????????????
????Key1=(int)num[2];???????
????while(num[i]!=NULL)?
{?
????????Key1+=(int)num[i];?
????????i++;?
}?
????Key1=Key1%20;? ?????//使用除留余數法?
}?
void?hash2(char?name[16])?//姓名哈希函數?
{?
????int?i?=?1;?
????Key2=(int)name[0];
????while(name[i]!
評論
共有 條評論