链地址法举例demo代码
时间: 2023-10-22 20:07:49 浏览: 60
uCOS-II.rar_ucos 应用_ucosⅡ代码举例
下面是一个使用链地址法实现哈希表的 Python 代码示例:
```python
class HashTable:
def __init__(self, size):
self.size = size
self.table = [[] for _ in range(size)]
def hash_func(self, key):
return key % self.size
def insert(self, key, value):
hash_key = self.hash_func(key)
self.table[hash_key].append((key, value))
def search(self, key):
hash_key = self.hash_func(key)
for k, v in self.table[hash_key]:
if k == key:
return v
return None
def delete(self, key):
hash_key = self.hash_func(key)
for i, (k, v) in enumerate(self.table[hash_key]):
if k == key:
del self.table[hash_key][i]
return
```
在这个示例中,`HashTable` 类实现了一个使用链地址法的哈希表。在初始化时,它创建了一个长度为 `size` 的空列表,用于存储哈希表中的元素。当插入元素时,它首先使用 `hash_func` 方法计算键的哈希值,然后将键值对 `(key, value)` 添加到哈希表中对应的桶中。在搜索元素时,它也使用 `hash_func` 方法计算键的哈希值,并在对应的桶中搜索键值对,返回键对应的值。在删除元素时,它也使用 `hash_func` 方法计算键的哈希值,并在对应的桶中搜索键值对,删除键值对。
阅读全文