哈哈,这是我第一篇博客园的博客。写了一个用python实现的哈希表,处理冲突的方法是开放地址法,冲突表达式为Hi=(H(key)+1)mod m,m为表长。迟点再实现更难的拉链法。
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
原文:http://www.cnblogs.com/cjyfff/p/3536525.html