哪位大哥帮忙编写程序。设计哈希表实现电话号码查询系统。

来源:百度知道 编辑:UC知道 时间:2024/05/26 23:32:40
基本要求:
1、设每个记录有下列数据项:电话号码、用户名、地址;
2、从键盘输入各记录,分别以电话号码和用户名为关键字建立哈希表;
3、采用再哈希法解决冲突;
4、查找并显示给定电话号码的记录;
5、查找并显示给定用户名的记录。
是用c语言形式下的数据结构编写啊

#include <stdio.h>
#include <stdlib.h>
#include
<string.h>
#include <conio.h>
#define Size 11

typedef struct{
char name[30];
char
address[20];
//float num;
char num[30];
int
c;//统计比较次数
}record;

typedef struct{
record data[Size];
int count;
int
size;
}Hashtable;

void init(Hashtable &h)
{
for(int
i=0;i<Size;i++)
{h.data[i].num[0]=0;
h.data[i].c=0;}//!
h.size=Size;
h.count=0;
}

int exchange(char str[])
{
int
i,n,sum=0;
n=strlen(str);
for(i=0;i<n;i++)
sum=sum+str[i]-'0';
return
sum;
}

int HashSearch1(Hashtable &h,char *str,int &p)
//线性探测
{
int
i,j,k=exchange(str);
j=k%Size;
if(strcmp(str,h.data[j].num)==0)
{
return
j;
h.data[j].c++;//