Hash表_构建方法_编程技巧.pptVIP

  • 5
  • 0
  • 约1.2万字
  • 约 47页
  • 2015-07-29 发布于重庆
  • 举报
Hash表_构建方法_编程技巧.ppt

散列(Hashing)存贮 假定键值均是正整数. 散列存贮是通过对结点的键值做某种运算来确定具有该键值的结点的存放位置。 设有线性表F=(k1,k2,…,kn-1)和数组T[m],而结点ki的键值为Keyi,记F中所有结点的键值的集合为S. h(x)是从S到整数区间[0,m-1]上的一个一一对应函数。 对于F中的任一结点Ki,都有一个h(keyi)的唯一值与之对应, Ki存放在数组T[m]中的位置就由h(keyi)决定。 这种存贮线性表F的方法,称为散列存贮。称函数h(x)为散列函数(HASH函数)。 称存放结点的数组T(m)为散列表(Hash表). 设F是含有六个结点的线性表,其中K0=(9,e) ,k1=(12,b), k2=(20,e), K3=(26,a), k4=(34,d), k5=(48,f). 若取散列函数h(x)=x mod 10,并使用能存放十个结点的数组T[10]作为Hash表,则下图表示了F的散列存贮的状况。 0 1 2 3 4 5 6 7 8 9 如果我们想找到key4=34的结点K4,那么只要计算出 34 mod 10=4 就能在数组元素T[4]中找到它。 出现h(keyi)=h(keyj),称这种情况是冲突。 散列存贮的两个主要问题是:一是选取散列函数;二是选取解决冲突的办法。 静态散列方法 散列方法在表项存储位置与其关键码之间建立一个确定的对应

文档评论(0)

1亿VIP精品文档

相关文档