主题:哈希表(散列表)的设计与实现
a65273098
[专家分:0] 发布于 2010-07-08 14:19:00
哈希表(散列表)的设计与实现
【问题描述】
设计哈希表实现电话号码查找系统。
【基本要求】
(1) 设每个记录有下列数据项:电话号码、用户名、地址;
(2) 从键盘输入各记录,分别以电话号码为关键字建立散列表;
(3)采用拉链法解决冲突;
(4)查找并显示给定电话号码的记录;
(5) 查找并显示给定用户名的记录。
最后更新于:2010-07-08 21:50:00
回复列表 (共8个回复)
沙发
a65273098 [专家分:0] 发布于 2010-07-08 15:57:00
高手帮个忙编下,用C语言的[em7]
我已经没办法了,编了2天没编出来 [em7]
板凳
a65273098 [专家分:0] 发布于 2010-07-08 20:18:00
就没有人会吗???太假了吧- -!
3 楼
雪光风剑 [专家分:27190] 发布于 2010-07-08 20:20:00
不是没有人会
论坛的宗旨是“天下没有免费的午餐”
你的代码写的不好,没关系
你套代码出错了,没关系。把你的错误贴出来,同时把你的参考资料拿出来,大家给你分析,给你讲解。以上
4 楼
强强 [专家分:4740] 发布于 2010-07-08 21:27:00
不错,想直接要代码的人不值得同情
5 楼
a65273098 [专家分:0] 发布于 2010-07-08 21:47:00
那怎么把我的程序上传呢?
6 楼
a65273098 [专家分:0] 发布于 2010-07-08 21:55:00
我已经把我的程序上传了, 关键字解决冲突那部分被我注释掉了
还请高手帮我看看我这程序是不是按照要求来的
第一次来论坛,不懂规矩,抱歉了
7 楼
eastcowboy [专家分:25370] 发布于 2010-07-09 01:47:00
哈希表,那是有套路的。
首先,要有一块空间,大小固定。假设空间大小为N。
然后,要有一个哈希函数。因为要求“以电话号码为关键字建立散列表”,所以这个函数的参数就是电话号码,函数的返回值是一个整数,并且这个整数的值大于等于0,小于N。
再然后,因为要求“采用拉链法解决冲突”,所以要懂得操作链表。
具体做法:
(1) 定义链表。链表的每个结点就是一条记录,包括了电话号码、用户名、地址。
(2) 定义一个数组,大小为N。数组的每个元素都是一个链表。
(3) 定义一个哈希函数。
(3) 初始化,把数组中每一个链表都初始化为空。
(4) 如果是新增一条记录,则把电话号码作为参数,调用哈希函数,假设返回值为n,则找到数组中的第n个元素(这个元素是一个链表),然后把这条记录添加到链表中。
(5) 如果是查找一条记录,则把电话号码作为参数,调用哈希函数,假设返回值为n,则找到数组中的第n个元素(这个元素是一个链表),然后在这个链表中查找。
(6) 完成后,销毁所有链表。
楼主的程序代码,还差了很多呢。按照上面的步骤一点一点的完成吧。
提醒一下:注意传值、传地址、传引用的区别,楼主的程序在这方面有错误。
8 楼
a65273098 [专家分:0] 发布于 2010-07-09 10:49:00
有谁帮忙纠正一下,我这份被老师退回来了
说是 没用到 建立哈希表 和 拉链法
我来回复