用C语言设计散列表实现电话号码查找系统。设电话号码簿长度为n(0≤n≤10000),系统应该实现如下工作: ⑴ 电话号码簿保存在文件dianhuabu.txt中,每一条电话号码记录包含数据项:编号(唯一),用户名,通信地址,电话号码(手机号) ⑵ 创建散列表:系统运行时,读取文件dianhuabu.txt的电话号码,构建散列表,用于查询。要求:自选散列函数(至少2种),自选解决冲突的方法(至少2种),分别以电话号码和用户名为关键字,建立散列表。 ⑶ 查询:根据输入的用户名,查找并显示给定用户的信息。
时间: 2024-02-23 08:57:03 浏览: 117
《数据结构》课程设计 电话号码查询系统
好的,我会尽力回答你的问题。首先,我可以给你一个简单的思路设计散列表实现电话号码查找系统。
1. 散列函数的选择:常用的散列函数有除留余数法、平方取中法、折叠法、随机数法等。可以根据实际情况选择适合的散列函数。例如,可以使用电话号码的后四位作为散列函数,也可以使用用户名的首字母的ASCII码值作为散列函数。
2. 解决冲突的方法:常用的解决冲突的方法有开放地址法、链地址法、再散列法等。可以根据实际情况选择适合的解决冲突的方法。例如,可以使用链地址法解决冲突,也可以使用开放地址法解决冲突。
3. 读取文件dianhuabu.txt的电话号码,构建散列表:读取文件dianhuabu.txt,解析每一条电话号码记录,根据所选的散列函数计算散列值,根据所选的解决冲突的方法处理冲突,将每条记录存储到散列表中。
4. 根据输入的用户名,查找并显示给定用户的信息:根据输入的用户名计算散列值,根据所选的解决冲突的方法在散列表中查找对应的记录,如果找到了,就显示该用户的信息,否则提示没有找到该用户的信息。
以上是一个简单的思路,你可以根据实际情况进行相应的实现。
阅读全文