php企业门户网站模板,杭州网站推广宣传,seo整站优化哪家专业,网站图标文件下载转载请注明出处 http://blog.csdn.net/yankai0219/article/details/8185847问题#xff1a;1. hash算法主表实现为什么不直接用数组,而使用malloc动态申请?2. 另外每个桶的使用 线性队列 和 双向队列 以及 二级hash的区别以及好处是什么?答案:1.1#xff09;hash表大小如果… 转载请注明出处 http://blog.csdn.net/yankai0219/article/details/8185847 问题 1. hash算法主表实现为什么不直接用数组,而使用malloc动态申请? 2. 另外每个桶的使用 线性队列 和 双向队列 以及 二级hash的区别以及好处是什么? 答案: 1. 1hash表大小如果是固定的当然可以采用数组 struct hash_head *hash_list[1024]; 2如果hash大小没有确定在程序中动态变化的那就需要使用malloc动态申请。 int hash_size get_hash_size(); struct hash_head **hash_list; *hash malloc(hash_size); memset(*hash, 0, hash_size); 2. 线性链表只能单相查找结点即知道一个已知结点不能找到它的前驱。 双向链表可以向前向后二个方向查找结点。 还有双向循环链表我在项目中用的比较多。直接用内核里扒下来用的。 二级hash我到觉的没什么必要。使结构太复杂。可以用一级hash来代替。设计好hash算法就行了。 问题 3. 1已知一个线性表(382574635248)采用的散列函数为H(Key)Key%7将元素散列到表长为7的哈希表中存储。若采用线性探测的开放定址法解决冲突则在该散列表上进行等概率成功查找的平均查找长度为 ____ 2若利用拉链法解决冲突则在该散列表上进行等概率成功查找的平均查找长度为 ____ 答案:111/6 28/6.对于1中答案给出的是12/62经过验证是错误的。 分析过程 1采用开放定址法 key382574635248地址3 44036解决冲突过程 5 4 5 67查找次数112142 平均查找长度1*32*24/611/6 2)采用拉链法 拉链链表中元素查找次数0631338 52381次 522次425 74 251次 742次6481 平均查找长度1*42*2/64/3 4.设一哈希表长为13采用线性探测法解决冲突哈希函数H(key)key%13 1 画出在空表中依次插入关键字25.20.36.15.41.52.29.72.67后的哈希表 2 求在等概率情况下查找成功和查找不成功的平均查找长度 答案 1Hash表 hash表下标地址0123456789101112hash表元素52 15412967 2072 36 25解决冲突过程 2 33 4 2 3 4 5 7 8 查找次数1 1224 12 1 1 2查找成功的平均查找长度1*5 2*3 4*1/9 15/9 。查找成功的平均查找长度为SUM(查找次数)/SUM(元素个数) 3) 查找失败的平均查找长度 计算长度为m的哈希表中装填有n个记录的查找不成功时的平均查找长度相当于计算在这张表中填入第n1个记录时所需要的比较次数的期望值。 第N1个记录可能是0~12 若 N1个记录是0由于位置0已经被占用位置1没有占用所以比较2次依次类推。 hash表下标0123456789101112hash表元素52 15412967 2072 36 25解决冲突过程 2 33 4 2 3 4 5 7 8 查找次数1 1224 12 1 1查找不成功2154321321213 故查找不成功的平均查找长度为21543211221213/1330/13 5. 将关键字序列7、8、30、11、18、9、14散列存储到散列表中。散列表的存储空间是一个下标从0开始的一维数组散列函数为 H(key) (keyx3) MOD 7处理冲突采用线性探测再散列法要求装填载因子为0.7。 (1) 请画出所构造的散列表。 (2) 分别计算等概率情况下查找成功和查找不成功的平均查找长度。 答案 1 2查找成功的平均查找长度 (表3) 所以ASLsuccess 1111332/ 7 12/7 查找不成功的平均查找长度 计算查找不成功的次数就直接找关键字到第一个地址上关键字为空的距离即可 但根据哈希函数地址为MOD7因此初始只可能在0~6的位置 因此查找不成功的次数表如下表所示 (表4) 所以ASLunsuccess 3212154/ 7 18/7。 参考文献 http://zhan.renren.com/astart?gid3602888498031032593 http://shijuanfeng.blogbus.com/logs/172381700.html 转载请注明出处http://blog.csdn.net/yankai0219/article/details/8185847