Update hash_set_linked_list.py

This commit is contained in:
marina 2023-08-07 16:42:22 -07:00 committed by GitHub
parent d1e0aa2a52
commit 95f73c5771
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -6,22 +6,22 @@
class HashSet: class HashSet:
def __init__(self): def __init__(self):
self.key_range = 131 self.size = 131
self.bucket = [LL_Bucket() for _ in range(self.key_range)] self.bucket = [Bucket() for _ in range(self.key_range)]
def _hash(self, key): def _get_hash_key(self, key):
return key % self.key_range return key % self.size
def add(self, element: int) -> None: def add(self, element: int) -> None:
bucket_index = self._hash(element) bucket_index = self._get_hash_key(element)
self.bucket[bucket_index].insert(element) self.bucket[bucket_index].insert(element)
def remove(self, element: int) -> None: def remove(self, element: int) -> None:
bucket_index = self._hash(element) bucket_index = self._get_hash_key(element)
self.bucket[bucket_index].delete(element) self.bucket[bucket_index].delete(element)
def contains(self, element: int) -> bool: def contains(self, element: int) -> bool:
bucket_index = self._hash(element) bucket_index = self._get_hash_key(element)
return self.bucket[bucket_index].exists(element) return self.bucket[bucket_index].exists(element)
@ -31,9 +31,8 @@ class Node:
self.next = next self.next = next
class LL_Bucket: class Bucket:
def __init__(self): def __init__(self):
# add a pseud head
self.head = Node(0) self.head = Node(0)
def insert(self, value): def insert(self, value):