没有合适的资源?快使用搜索试试~ 我知道了~
首页C语言基于哈希表实现通讯录
资源详情
资源评论
资源推荐
C语言基于哈希表实现通讯录语言基于哈希表实现通讯录
主要为大家详细介绍了C语言基于哈希表实现通讯录,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文为大家分享了C语言基于哈希表实现通讯录的具体代码,供大家参考,具体内容如下
1.需求分析.需求分析
本演示程序用C语言编写,完成哈希表的生成,电话号码的插入、以及查找等功能。
(1)按提示输入相应的联系人的相关资料;
(2)以相应的输出形式输出所存储的的联系人的资料;
(3)程序可以达到建立、添加、查找、打印的功能;
(4)程序可以判断用户输入的非法数据并引导正确的输入。
2.概要设计.概要设计
存储电话号码的记录时,若在存储位置和其关键字之间建立某种确定的对应关系使得每个关键字和存储结构中一个唯一的存储
位置相对应,那么在进行查找时,根据这个对应关系f就可以找到给定值K的像f(K)。若存储结构中存在关接找到所查记录。这
个对应关系f称为哈希(Hash)函数或散列函数。按照以上思路建立的表称为哈希表或散列表。本案例设计主要考察散列表的建
立、查找和修改。。
3.详细设计.详细设计
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct node
{
char num[11],name[15],address[20],city[15],etp[20];
struct node *next;
}NUM;
struct NUM *num_list[19];
int hash(char num[])
{
int i,k=0;
for(i=0;num[i]!=' ';i++)
{
k=10*k+num[i]-48; //字符转化为数字
}
k=(k%19); //除余法求散列地址
return k;
}//c除留余数法处理电话号码
void create()
{
struct node *p1;
int k1,m=0;
while(m==0)
{
printf("请输入你想添加人的信息:num name address city etp,");
p1=(struct node *)malloc(sizeof(struct node));
scanf("%s",p1->num);
scanf("%s",p1->name);
scanf("%s",p1->address);
scanf("%s",p1->city);
scanf("%s",p1->etp);
k1=hash(p1->num);//用num数组值作为参数传递给哈希函数得到k1
p1->next=num_list[k1];//將k1得到的值作为数组的储存地址赋值给头结点的下一个节点
num_list[k1]=p1;//再將p1的数据传递给数组,故p1可以释放作为下一个节点产生
printf("结束请按1,再次输入请按0");
scanf("%d",&m);
}
printf("通讯表已经创建");
}
void dlter()
{
char num[11];
int k1;
int find=0;
struct node *f;
printf("请查询要修改的联系人的电话::");
scanf("%s",num);
k1=hash(num);
weixin_38623707
- 粉丝: 4
- 资源: 924
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
- MW全能培训汽轮机调节保安系统PPT教学课件.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论5