数据结构——线性结构(哈希表)

  哈希表(又称为散列表),是一种线性表的存储结构。哈希表由一个顺序表(数组)和一个哈希函数组成。哈希函数h(k)将k作为自变量,返回元素的存储下标。

一、直接寻址表

  如果某应用要用到一个动态集合,其中每个元素都是全域U={0,1….,m}中的一个关键字 为表示动态集合,使用数组。称为直接寻址表,记为T[m],其中每个位置称为一个槽slot,对应于全域中的一个关键字。槽k指向集合中一个关键字为k的元素。如果该集合中没有关键字为k的元素,则T[k]=NIL; 

  

1、直接寻址技术优点

  当关键字的全域U比较小时,直接寻址是一种简单而有效的方法。

2、直接寻址技术缺点

  当域U很大时,需要消耗大量内存,很不实际;

  如果域U很大而实际出现的key很少,则大量空间被浪费;

  无法处理关键字不是数字的情况。

二、哈希表

  在直接寻址表上加了一个哈希函数就成了哈希表。

1、将直接寻址表改进为哈希表

  直接寻址表:key为k的元素放到k的位置上。

  改进方法:

  (1)构建大小为m的寻址表T;

扫描二维码关注公众号,回复: 3339281 查看本文章

  (2)key为k的元素放到h(k)位置上;

  (3)h(k)是一个函数,其将域U映射到表T[0,1,...,m-1]。

猜你喜欢

转载自www.cnblogs.com/xiugeng/p/9698075.html