- 0
- 0
- 约3.49千字
- 约 42页
- 2022-03-20 发布于北京
- 举报
9.3 哈希表(散列表);9.3 哈希表(散列表);9.3.1 哈希表的有关概念;例:已知某个高级语言的保留字集合为:
S = { and, or , not , begin, end, go, if, then, for, do, while repeat,until};; 例9.2 在S中增加3个关键字 else, array, with; ;冲突
不同关键字的哈希地址相同, 即key1?key2,但f(key1) = f(key2);
实际应用中,很难找到不产生冲突的哈希函数
关键字多且复杂;
只知道关键字取值范围,
而不知道确切的关键字;
关键字集合表空间;;采用哈希技术时需要考虑的两个问题
如何构造哈希函数?
如何处理冲突?;9.3.2 哈希函数; 9.3.2 哈希函数;除留余数法
设哈希表表长为m,p为不大于m的素数
哈希函数为 H(key)= key mod p ;9.3.2 哈希函数;直接定址法:
取关键字的某个线性函数作为哈希函数:
H(key)= a.key+b ;数字分析法
根据哈希表表长,从关键字中取分布均匀的若干位组成哈希地址。;平方取中法
根据哈希表表长,以关键字平方的中间几位作为哈希地址。;折叠法
将关键码自左到右分成位数相等的几部分(最后一部分位数可以短些),然后将这几部分叠加求和,并按哈希表表长,取后几位作为哈希地址。
两种叠加方法
移位叠加
折叠叠加 ; 0 4 4 2
2 0 3 0
+ 6 4
2 5 3 6; 9.3.2 哈希函数;9.3.3 链地址法;9.3.3 链地址法;9.3.3 链地址法-哈希表算法;typedef struct LNode {
ElemType data;
struct ListNode *next;
} LNode *LinkList;
typedef struct {
LinkList *TheLists;
int count; //哈希表当前数据元素个数
int TableSize;
}HashTable;
typedef LinkList Position; ;void InitializeTable( HashTable HT, int TableSize )
{
HT.TableSize = TableSize;
HT.count=0;
HT.TheLists = (LinkList*) /*Array of LinkList */
malloc( sizeof(LinkList ) * HT.TableSize );
for( i = 0; i HT.TableSize; i++ )
{
HT.TheLists[ i ] = (LNode*)malloc( sizeof(LNode));
HT.TheLists[ i ]-next = NULL;
}
};Position Find( HashTable HT, KeyType key)
{
L = HT.TheLists[ Hash( key ) ];
p=L-next;
while( p != NULL p-data.key != key )
p= p-next;
return p ;
} ;int Insert( HashTable HT, ElemType e)
{
if (!Find_I_D(HT,e.key, pre, p ))
{ /* e.key is not found, then insert */
s = ( LNode*) malloc(sizeof( LNode ) );
s-data = e; /* Probably need strcpy! */
s-next = pre-next; pre-next = s;
HT.count++;
return 1;
}
else return 0;
};int Delete( HashTable HT, KeyType key)
{
if (Find_I_D(HT,key, pre, p ))
{ /* key is found,
您可能关注的文档
- 大畈示意图西泉村地块.pdf
- 黄沙铺示意图晨光村地块.pdf
- 帅哥作业等多个文件.pdf
- 解读shopnum1分销系统关键字管理.pdf
- 产品故障及解决方案.pptx
- 德克萨斯大学奥斯汀分校生物医学工程面试经验汇总.pdf
- 检查后轴和转向节的状态.pdf
- 第8章钢结构连接3郭小农.pptx
- 学习课件例题实验课试题vb.pdf
- 2005年5月网络工程师考试试题结构分析.pdf
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
原创力文档

文档评论(0)