Skip to content

Commit bad31e1

Browse files
committed
Added class HashTable
1 parent e042a7c commit bad31e1

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

src/reTest/hash_table.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
class HashTable:
2+
def __init__(self):
3+
self.size = 128
4+
self.hash_table = [[] for _ in range(self.size)]
5+
6+
def _hash(self, value):
7+
summ = 0
8+
for symbol in value:
9+
summ += ord(symbol)
10+
return summ % self.size
11+
12+
def put(self, key, value):
13+
index = self._hash(key)
14+
table = self.hash_table[index]
15+
if key not in table:
16+
self.hash_table[index].append((key, value))
17+
18+
def get(self, key):
19+
index = self._hash(key)
20+
table = self.hash_table[index]
21+
for i, (k, v) in enumerate(table):
22+
if key == k:
23+
return v
24+
return None
25+
26+
def remove(self, key):
27+
index = self._hash(key)
28+
table = self.hash_table[index]
29+
for i, (k, v) in enumerate(table):
30+
if key == k:
31+
self.hash_table[index].pop(i)
32+
break
33+
return

0 commit comments

Comments
 (0)