mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-01-18 16:27:02 +00:00
Fix rehashing function will not call insert_data function (#1803)
* Fix rehashing function will not call insert_data function * Fix typo * Update loop syntax instead of allocating a list Co-Authored-By: Christian Clauss <cclauss@me.com> Co-authored-by: Christian Clauss <cclauss@me.com>
This commit is contained in:
parent
ab3400bfad
commit
45524dd6d3
|
@ -24,7 +24,7 @@ class DoubleHash(HashTable):
|
|||
def __hash_double_function(self, key, data, increment):
|
||||
return (increment * self.__hash_function_2(key, data)) % self.size_table
|
||||
|
||||
def _colision_resolution(self, key, data=None):
|
||||
def _collision_resolution(self, key, data=None):
|
||||
i = 1
|
||||
new_key = self.hash_function(data)
|
||||
|
||||
|
|
|
@ -62,7 +62,8 @@ class HashTable:
|
|||
self.size_table = next_prime(self.size_table, factor=2)
|
||||
self._keys.clear()
|
||||
self.values = [None] * self.size_table # hell's pointers D: don't DRY ;/
|
||||
map(self.insert_data, survivor_values)
|
||||
for value in survivor_values:
|
||||
self.insert_data(value)
|
||||
|
||||
def insert_data(self, data):
|
||||
key = self.hash_function(data)
|
||||
|
|
|
@ -18,9 +18,9 @@ class HashTableWithLinkedList(HashTable):
|
|||
* self.charge_factor
|
||||
)
|
||||
|
||||
def _colision_resolution(self, key, data=None):
|
||||
def _collision_resolution(self, key, data=None):
|
||||
if not (
|
||||
len(self.values[key]) == self.charge_factor and self.values.count(None) == 0
|
||||
):
|
||||
return key
|
||||
return super()._colision_resolution(key, data)
|
||||
return super()._collision_resolution(key, data)
|
||||
|
|
|
@ -11,7 +11,7 @@ class QuadraticProbing(HashTable):
|
|||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def _colision_resolution(self, key, data=None):
|
||||
def _collision_resolution(self, key, data=None):
|
||||
i = 1
|
||||
new_key = self.hash_function(key + i * i)
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user