问题描述 设计哈希表实现电话号码查询系统.docx

上传人:小飞机 文档编号:3134205 上传时间:2023-03-11 格式:DOCX 页数:13 大小:37.95KB
返回 下载 相关 举报
问题描述 设计哈希表实现电话号码查询系统.docx_第1页
第1页 / 共13页
问题描述 设计哈希表实现电话号码查询系统.docx_第2页
第2页 / 共13页
问题描述 设计哈希表实现电话号码查询系统.docx_第3页
第3页 / 共13页
问题描述 设计哈希表实现电话号码查询系统.docx_第4页
第4页 / 共13页
问题描述 设计哈希表实现电话号码查询系统.docx_第5页
第5页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《问题描述 设计哈希表实现电话号码查询系统.docx》由会员分享,可在线阅读,更多相关《问题描述 设计哈希表实现电话号码查询系统.docx(13页珍藏版)》请在三一办公上搜索。

1、问题描述 设计哈希表实现电话号码查询系统。#include<string.h>#include<stdlib.h>#include<stdio.h>#define NULL 0int*p;struct node/建节点char name20,address50;char num11;node*next;struct Node/建节点 char name20,address50;char num11;typedef node*Lnode;typedef Node Tnode;typedef struct lodeLnode next;lode;typedef struct

2、/顺序表存储下的哈希表int size;Tnode t10000;Qnode;typedef struct/链表存储下的哈希表int size;lode L10000;Pnode;void chuliu/除留取余法查询电话号码Qnode W;memset(W.t,0,sizeof(W.t);/初始化Tnode s;printf(输入录入数据个数:);int n;scanf(%d,&n);W.size=n;/录入元素printf(请输入你要录入的元素:);while(n-)printf(姓名 地址 电话号码n);scanf(%s %s %s,s.name,s.name,s.address,s.n

3、um);int i=3,key;while(s.numi!=0)/关键字key+=(s.numi-0);/关键字求和i+;key=key%21;/线性探测再散列处理冲突if(!strcmp(W.tkey.num,)/查找,解决冲突W.tkey=s;else/第一次没解决彻底,继续解决冲突int j=1;while(strcmp(W.t(key+j)%21.num,)j+;W.t(key+j)%21=s;printf(请输入你要查找的电话号码:);/查找char xnum11;scanf(%s,xnum);int i=3;int key=xnum2-0;while(xnumi!=0)key+=(

4、xnumi-0);/求和i+;key=key%21;if(!strcmp(W.tkey.num,xnum)/第一次查找,如果值相等直接赋值printf(%s %s %sn,W.tkey.name,W.tkey.address,W.tkey.num);else/第一次没找到,继续查找int j=1;while(strcmp(W.t(key+j)%21.num,xnum)j+;if(j=20)printf(查找元素不存在!);elseprintf(%s %s %sn,W.t(key+j)%21.name,W.t(key+j)%21.address,W.t(key+j)%21.num);/输出查找到

5、的元素void shuzi/按电话号码-数字分析法Qnode q1;printf(请输入您要输入的数据个数:);int n,m1,m2;memset(q1.t,0,sizeof(q1.t);/初始化Tnode s;scanf(%d,&n);q1.size=n;for(int i=0;i<10000;i+)strcpy(q1.ti.num,);/置空m1=m2=0;while(n-)printf(请输入您要录入的元素:);printf(姓名 地址 电话号码n);scanf(%s %s %s,s.name,s.address,s.num);/读入数据_int64 key;key=(_int64

6、)s.num)%10000;/处理冲突if(!strcmp(q1.tkey.num,)q1.tkey=s;elsei=1;m1+;while(strcmp(q1.t(key+i)%10000.num,)i+;q1.t(key+i)%10000=s;printf(请输入您要查找的电话号码:);/查找char xnum11;scanf(%s,xnum);int k=3;_int64 key=(_int64)xnum;key=key%10000;if(!strcmp(q1.tkey.num,xnum)printf(%s %s %s,q1.tkey.name,q1.tkey.address,q1.tk

7、ey.num);elseint j=1;while(strcmp(q1.t(key+j)%10000.num,xnum)j+;if(j=20)printf(查找元素不存在!);elseprintf(%s %s %sn,q1.t(key+j)%10000.name,q1.t(key+j)%10000.address,q1.t(key+j)%10000.num);void fenxiQnode q2;printf(请输入您要输入的数据个数:);int n,m1,m2;memset(q2.t,0,sizeof(q2.t);/初始化Tnode s;scanf(%d,&n);q2.size=n;for(

8、int i=0;i<10000;i+)strcpy(q2.ti.name,);/置空m1=m2=0;while(n-)printf(请输入您要录入的元素:);printf(姓名 地址 电话号码n);scanf(%s %s %s,s.name,s.address,s.num);_int64 key;key=(_int64)s.name)%10000;/处理冲突if(!strcmp(q2.tkey.name,)q2.tkey=s;elsei=1;m1+;while(strcmp(q2.t(key+i)%10000.name,)i+;q2.t(key+i)%10000=s;printf(请输入您

9、要查找的名字:);/查找char xname20;scanf(%s,xname);int k=1;_int64 key=(_int64)xname;key=key%10000;if(!strcmp(q2.tkey.name,xname)printf(%s %s %s,q2.tkey.name,q2.tkey.address,q2.tkey.num);elseint j=1;while(strcmp(q2.t(key+j)%10000.name,xname)j+;if(j=20)printf(查找元素不存在!);elseprintf(%s %s %sn,q2.t(key+j)%10000.nam

10、e,q2.t(key+j)%10000.address,q2.t(key+j)%10000.num);void menuprintf(*电话号码查询系统*n);printf( 根据电话号码查询 1 n);printf( 根据用户名查询 2 n);printf(*n);printf(请输入您要的选项:n);int x,y;while(scanf(%d,&x)!=-1)if(x=1)printf(*电话号码查询*n);printf( 除留取余法 1 n);printf( 数字分析法 2 n);printf(*n);printf(请输入y值: n);scanf(%d,&y);while(y<3)switch(y)case 1:chuliu;break;case 2:shuzi;break;default:printf(输入指令不存在! n);printf(*电话号码查询*n);printf( 除留取余法 1 n);printf( 数字分析法 2 n);printf(*n);printf(请输入您要的选项:n);scanf(%d,&y);else if(x=2)printf(*用户名查询*n);printf( 分析法 3 n);printf(*n);fenxi;/调用分析法elseprintf(查找方式不存在!请重新输入n);int mainmenu;return 0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号