abstracted structures fixed

This commit is contained in:
Mari Wahl 2015-01-06 21:11:21 -05:00
parent 3fdbc2a605
commit 01703751f1
98 changed files with 305 additions and 856 deletions

19
src/abstract_structures/HashTable.py Normal file → Executable file
View file

@ -7,28 +7,35 @@ class HashTable(object):
def __init__(self, slots=10):
self.slots = slots
self.table = []
self.__create_table()
self.create_table()
def __hash_key(self, value):
def hash_key(self, value):
return hash(value)%self.slots
def __create_table(self):
def create_table(self):
for i in range(self.slots):
self.table.append([])
def add_item(self, value):
key = self.__hash_key(value)
key = self.hash_key(value)
self.table[key].append(value)
def print_table(self):
for key in range(len(self.table)):
print "Key is %s, value is %s." %(key, self.table[key])
def find_item(self, item):
pos = self.hash_key(item)
if item in self.table[pos]:
return True
else:
return False
if __name__ == '__main__':
dic = HashTable(5)
for i in range(1, 40, 2):
dic.add_item(i)
dic.print_table()
dic.print_table()
assert(dic.find_item(20) == False)
assert(dic.find_item(21) == True)