哈希表求模代码并遍历寻找
时间: 2023-08-31 14:12:41 浏览: 52
以下是一个简单的哈希表求模的代码示例:
```python
def hash_func(key, size):
return key % size
hash_table = [[] for _ in range(10)] # 创建一个大小为10的哈希表
# 插入数据
def insert(hash_table, key, value):
idx = hash_func(key, len(hash_table))
hash_table[idx].append((key, value))
# 查找数据
def find(hash_table, key):
idx = hash_func(key, len(hash_table))
for k, v in hash_table[idx]:
if k == key:
return v
return None
# 遍历哈希表
def traverse(hash_table):
for idx in range(len(hash_table)):
print(f"Bucket {idx}:")
for k, v in hash_table[idx]:
print(f" Key: {k}, Value: {v}")
```
使用时,你可以调用 `insert` 函数来插入键值对,调用 `find` 函数来查找键对应的值,调用 `traverse` 函数来遍历所有键值对。
例如,下面是一个使用示例:
```python
# 在哈希表中插入一些数据
insert(hash_table, 1, "Hello")
insert(hash_table, 11, "World")
insert(hash_table, 21, "Python")
# 查找键为11的值
print(find(hash_table, 11)) # 输出:World
# 遍历哈希表
traverse(hash_table)
```
这个示例代码中的哈希表使用的是“开链法”来解决哈希冲突的问题。具体实现方式是,每个哈希桶中存储一个链表,如果两个键哈希到同一个桶中,就将它们存储在链表中。在查找时,遍历链表即可。
相关推荐
![](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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)