广工 数据结构 9.45
来源:互联网 发布:bug跟踪管理系统 java 编辑:程序博客网 时间:2024/04/30 19:20
处理冲突。试编写输入一组关键字并建造哈希表的算法。
实现下列函数:
int BuildHashTab(ChainHashTab &H, int n, HKeyType es[]);
/* 直接调用下列函数 */
/* 哈希函数: */
/* int Hash(ChainHashTab H, HKeyType k); */
/* 冲突处理函数: */
/* int Collision(ChainHashTab H, HLink &p); */
哈希表的类型ChainHashTab定义如下:
#define NUM 7
#define NULLKEY -1
#define SUCCESS 1
#define UNSUCCESS 0
#define DUPLICATE -1
typedef char HKeyType;
typedef struct HNode {
HKeyType data;
struct HNode* next;
}*HLink;
typedef struct {
HLink *elem; // 指针存储基址,动态分配数组
int count; // 当前表中含有的记录个数
int cursize; // 哈希表的当前容量
}ChainHashTab; // 链地址哈希表
int Hash(ChainHashTab H, HKeyType k) {
// 哈希函数
return k % H.cursize;
}
Status Collision(ChainHashTab H, HLink &p) {
// 求得下一个探查地址p
if (p && p->next) {
p = p->next;
return SUCCESS;
} else return UNSUCCESS;
}
int BuildHashTab(ChainHashTab &H, int n, HKeyType es[])
/* 直接调用下列函数 */
/* 哈希函数: */
/* int Hash(ChainHashTab H, HKeyType k); */
/* 冲突处理函数: */
/* int Collision(ChainHashTab H, HLink &p); */
{
int i = 0, l, flag;
HLink p, node;
while( es[i] ){
l = Hash( H, es[i] );
node = ( HLink )malloc( sizeof( HNode ) );
node->data = es[i];
node->next = NULL;
i++;
if( !H.elem[l] )
H.elem[l] = node;
else {
flag = 0;
p = H.elem[l];
if( p->data == node->data )
flag = 1;
while( Collision( H, p ) )
if( p->data == node->data ) {
flag = 1;
break;
}
if( !flag ){
p = H.elem[l];
node->next = p;
H.elem[l] = node;
}
}
}
}
- 广工 数据结构 9.45
- 广工数据结构
- 广工 数据结构 10.26
- 广工 数据结构 7.23
- 广工AnyView数据结构-1
- 广工AnyView数据结构-2
- 广工AnyView数据结构-3
- 广工AnyView数据结构-4
- 广工anyview数据结构-6
- 2015广工数据结构anyview题库
- 广工anyview数据结构-03(乱码不贴)
- 广工anyview数据结构-04~06(乱码不贴)
- 广工anyview数据结构-07~08(乱码不贴)
- 广工anyview数据结构-09~10(乱码不贴)
- 广工anyview数据结构-01~02(部分乱码我就不贴出来了)
- 数据结构之图【深搜,广搜】
- java数据结构 广搜,队列,循环队列
- C-数据结构-图-深、广遍历
- addrinfo的结构体
- 广工 数据结构 10.26
- 维基oi 1472体检
- 人如果受不了时间的折磨经不住失败的滋味要成功很难
- 同事之间的沟通(持续更新)
- 广工 数据结构 9.45
- hdoj 1063 Exponentiation 【大数精准次幂】
- 浅谈C++中指针和引用的区别 指针和引用在C++中很常用,但是对于它们之间的区别很多初学者都不是太熟悉,下面来谈谈他们2者之间的区别和用法。 1.指针和引用的定义和性质区别: (1)指针:指针是一
- POJ 2421 Prim
- 学习笔记----高斯消元(二)
- NSLog的格式
- 第一次
- C#的基本语法
- 科学家揭示真正的“休息模式”