用python实现哈希表(开放地址法)

时间:2014-01-31 12:27:28   收藏:0   阅读:1007

哈哈,这是我第一篇博客园的博客。写了一个用python实现的哈希表,处理冲突的方法是开放地址法,冲突表达式为Hi=(H(key)+1)mod m,m为表长。迟点再实现更难的拉链法。

bubuko.com,布布扣
 1 #! /usr/bin/env python
 2 #coding=utf-8
 3 #实现哈希表(线性地址再散列)
 4 
 5 def ChangeKey(key,m,di):
 6     key01=(key+di) % m
 7     return key01
 8 
 9 a=raw_input("Please entry the numbers:\n").split()
10 m=len(a)
11 dict01={}
12 for i in a:
13     key=int(i)%m
14     if "%s"%key in dict01:
15         NewKey=ChangeKey(key,m,1)
16         while "%s"%NewKey in dict01:         #因为下面的dict01的key值是以字符串来保存,因此这里作判断时也要用字符串格式
17             NewKey=ChangeKey(NewKey,m,1)
18         dict01["%s"%NewKey]=int(i)
19     else:
20         dict01["%s"%key]=int(i)
21 print dict01
bubuko.com,布布扣

原文:http://www.cnblogs.com/cjyfff/p/3536525.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!