mirror of
https://github.com/autistic-symposium/master-algorithms-py.git
synced 2025-04-29 20:26:07 -04:00
Update hash_set_bst.py
This commit is contained in:
parent
0f92fc245c
commit
dd2462222f
@ -6,26 +6,26 @@
|
|||||||
class HashSet:
|
class HashSet:
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.key_range = 131
|
self.size = 131
|
||||||
self.bucket = [Bucket() for _ in range(self.key_range)]
|
self.bucket = [Bucket() for _ in range(self.size)]
|
||||||
|
|
||||||
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)
|
||||||
|
|
||||||
|
|
||||||
class TreeNode:
|
class Node:
|
||||||
def __init__(self, value=None):
|
def __init__(self, value=None):
|
||||||
self.val = value
|
self.val = value
|
||||||
self.left = None
|
self.left = None
|
||||||
@ -50,16 +50,16 @@ class BSTree():
|
|||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.root = None
|
self.root = None
|
||||||
|
|
||||||
def search(self, root, value) -> TreeNode:
|
def search(self, root, value) -> Node:
|
||||||
if root is None or value == root.val:
|
if root is None or value == root.val:
|
||||||
return root
|
return root
|
||||||
|
|
||||||
return self.search(root.left, value) if val < root.value \
|
return self.search(root.left, value) if val < root.value \
|
||||||
else self.search(root.right, value)
|
else self.search(root.right, value)
|
||||||
|
|
||||||
def insert(self, root, value) -> TreeNode:
|
def insert(self, root, value) -> Node:
|
||||||
if not root:
|
if not root:
|
||||||
return TreeNode(value)
|
return Node(value)
|
||||||
|
|
||||||
if value > root.val:
|
if value > root.val:
|
||||||
root.right = self.insert(root.right, value)
|
root.right = self.insert(root.right, value)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user