线性表的关键字集合key = { 37,12,28,55,20,39,9 },构造哈希表,表长为7(范围0~6),选取哈希函数的方法为“除留余数法”:H ( key ) = key % 7,解决冲突方法为“线性探测再散列”,请按上述条件: (1)求出key中各值的地址,画出相应的哈希表;
时间: 2024-04-06 07:35:16 浏览: 25
根据哈希函数 H(key) = key % 7,可以求出每个关键字对应的地址:
37 % 7 = 2
12 % 7 = 5
28 % 7 = 0
55 % 7 = 6
20 % 7 = 6
39 % 7 = 4
9 % 7 = 2
出现了冲突,需要进行线性探测再散列。具体方法是,如果关键字在哈希表中的位置已经被占用,则在下一个位置继续寻找,直到找到一个空位置为止。因此,得到的哈希表如下所示:
|0|1|2|3|4|5|6|
|-|-|-|-|-|-|-|
|28| |37|55|39|12|20|
其中,28 的地址为 0,37 的地址为 2,但是 2 的位置已经被 9 占用,因此 37 需要往后寻找空位置,直到找到 12 的位置。以此类推,最终得到的哈希表如上所示。
相关问题
线性表的关键字集合key = { 37,12,28,55,20,39,9 },构造哈希表,表长为7(范围0~6),选取哈希函数的方法为“除留余数法”:H ( key ) = key % 7,解决冲突方法为“线性探测再散列”,请按上述条件: (1)求出key中各值的地址,画出相应的哈希表;
根据除留余数法,将关键字集合中的每个元素除以7取余数,得到的余数即为该元素在哈希表中的地址。
37 % 7 = 2
12 % 7 = 5
28 % 7 = 0
55 % 7 = 6
20 % 7 = 6
39 % 7 = 4
9 % 7 = 2
其中,55和20的哈希地址相同,发生了冲突。根据线性探测再散列的方法,当发生冲突时,依次向后查找哈希表,直到找到空位置为止。具体实现过程如下:
- 首先,将关键字为55的元素插入哈希表的地址为6的位置,得到哈希表为:[0, 0, 2, 0, 0, 0, 55];
- 接着,将关键字为20的元素插入哈希表的地址为6的下一个位置,即地址为0的位置,得到哈希表为:[20, 0, 2, 0, 0, 0, 55];
- 最后,将哈希表中的其它元素插入相应的位置,得到最终的哈希表为:[28, 9, 37, 12, 0, 20, 55]。
下面是哈希表的示意图:
```
哈希地址 0 1 2 3 4 5 6
关键字 28 9 37 12 无 20 55
```
其中,关键字为无的位置表示该位置未被占用。
3.(10分)线性表的关键字集合key = { 37,12,28,55,20,39,9 },构造哈希表,表长为7(范围0~6),选取哈希函数的方法为“除留余数法”:H ( key ) = key % 7,解决冲突方法为“线性探测再散列”,请按上述条件: (1)求出key中各值的地址,画出相应的哈希表;(4分)
根据除留余数法,计算各元素的地址:
37 % 7 = 2
12 % 7 = 5
28 % 7 = 0
55 % 7 = 6
20 % 7 = 6
39 % 7 = 4
9 % 7 = 2
因为20和55的地址都为6,所以需要进行线性探测再散列,即往后依次探测空闲位置,直到找到一个空闲位置为止。探测的顺序为6,0,1,2,3,4,5。
因此,各元素在哈希表中的地址为:
0: 28
1:
2: 37 -> 9
3:
4: 39
5: 12
6: 55 -> 20
画出相应的哈希表如下:
```
+---+---+---+---+---+---+---+
| 28| |37 | |39 |12 |55 |
+---+---+---+---+---+---+---+
0 1 2 3 4 5 6
```
相关推荐
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)