#G7C02. G7-2 哈希表 课后练习
G7-2 哈希表 课后练习
- [G7-样题-5] 哈希表上可以执行的操作不包括() {{ select(1) }}
- 插入
- 排序
- 查找
- 删除
- [G7-2403-5]以下哪个方案不能合理解决或缓解哈希表冲突()。 {{ select(2) }}
- 在每个哈希表项处,使用单链表管理该表项的冲突元素。
- 建立额外的单链表,用来管理所有发生冲突的元素。
- 使用不同的哈希函数再建立一个哈希表,用来管理所有发生冲突的元素。
- 用新元素覆盖发生冲突的哈希表项。
- [G7-2312-10]对关键字序列
{44, 36, 23, 35, 52, 73, 90, 58}建立哈希表,哈希函数为 ,执行下面的Insert函数,则等概率情况下的平均成功查找长度(即查找成功时的关键字比较次数的均值)为( )。
#include <iostream>
#include <string>
#include <cmath>
#include <vector>
using namespace std;
typedef struct Node{
int data;
struct Node *next;
}Node;
Node* hTab[7];
int key[]={44, 36, 23, 35, 52, 73, 90, 58, 0};
void Insert()
{
int i,j;
Node *x;
for(i=0; key[i]; i++){
j = key[i] % 7;
x=new Node;
x->data = key[i];
x->next = hTab[j];
hTab[j] = x;
}
return;
}
{{ select(3) }}
- 7/8
- 1
- 1.5
- 2
- [G7-2406-7]以下哪个方案不能合理解决或缓解哈希表冲突()。 {{ select(4) }}
- 丢弃发生冲突的新元素。
- 在每个哈希表项处,使用不同的哈希函数再建立一个哈希表,管理该表项的冲突元素。
- 在每个哈希表项处,建立二叉排序树,管理该表项的冲突元素。
- 使用不同的哈希函数建立额外的哈希表,用来管理所有发生冲突的元素。
- [G7-2409-9]以下哪个方案可以合理解决或缓解哈希表冲突()。 {{ select(5) }}
- 丢弃发生冲突的新元素。
- 用新元素覆盖发生冲突的元素。
- 用新元素覆盖在冲突位置的下一个位置。
- 将新元素放置在冲突位置之后的第一个空位。
- [G7-样题-20]如果哈希表足够大,哈希函数确定后,不会产生冲突。() {{ select(6) }}
- 正确
- 错误
- [G7-2312-22]某个哈希表键值 为整数,为其定义哈希函数 ,则 选择素数时不会产生冲突。() {{ select(7) }}
- 正确
- 错误
- [G8-2312-20]如果待查找的元素确定,只要哈希表的大小不小于查找元素的个数,就一定存在不会产生冲突的哈希函数。() {{ select(8) }}
- 正确
- 错误
- [G7-2403-22]某 个表项的哈希表,在发生哈希函数冲突时采用向后寻找空位的方法解决冲突。其查找操作的平均时间复杂度为 ,即使当该哈希表的每个表项都有元素时,查找操作的平均时间复杂度仍为 。() {{ select(9) }}
- 正确
- 错误
- [G8-2403-20]为解决哈希函数冲突,在哈希表项内设置链表存储该项内的所有冲突元素,则该哈希表内查找元素的最差时间复杂度为 。() {{ select(10) }}
- 正确
- 错误