资源简介
(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]!
评论
共有 条评论