Question: Using python: Implement the len method (__len__) for the hash table MAP ADT. Implement the in method (__contains__) for the hash table Map ADT. Here

Using python:

Implement the len method (__len__) for the hash table MAP ADT.

Implement the in method (__contains__) for the hash table Map ADT.

Here is what I have so far:

class HashTable: def __init__(self): self.size = 11 self.slots = [None] * self.size self.data = [None] * self.size

def put(self, key, data): hashvalue = self.hashfunction(key,len(self.slots))

if self.slots[hashvalue] == None: self.slots[hashvalue] = key self.data[hashvalue] = data else: if self.slots[hashvalue] == key: self.data[hashvalue] = data else: nextslot = self.rehash(hashvalue, len(self.slots)) while self.slots[nextslot] != None and \ self.slots[nextslot] != key: nextslot = self.rehash(nextslot, len(self.slots))

if self.slots[nextslot] == None: self.slots[nextslot] = key self.data[nextslot] = data else: self.data[nextslot] = data

def hashfunction(self, key, size): return key%size def rehash(self, oldhash, size): return (oldhash+1)%size

def get(self, key): startslot = self.hashfunction(key, len(self.slots))

data = None stop = False found = False position = startslot

while self.slots[position] != None and \ not found and not stop: if self.slots[position] == key: found = True data = self.data[position] else: position = self.rehash(position, len(self.slots)) if position == startslot: stop = True return data

def __getitem__(self, key): return self.get(key)

def __setitem__(self, key, data): self.put(key, data)

def __len__(self): return len

H=HashTable() H[54]="cat" H[26]="dog" H[93]="lion" H[17]="tiger" H[77]="bird" H[31]="cow" H[44]="goat" H[55]="pig" H[20]="chicken" print("Keys: ", H.slots) print("Data: ", H.data) print(H[20]) print(H[17]) H[20]='duck' print(H[20]) print(H[99])

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!