exp1dsa
exp1dsa
Assignment 1 :
Input :
class Record:
self.name = name
self.number = number
def get_name(self):
return self.name
def get_number(self):
return self.number
self.name = name
self.number = number
def __str__(self):
class HashTable:
self.size = size
self.elementCount = 0
def isFull(self):
if self.isFull():
return False
position = self.hashFunction(record.get_number())
initial_position = position
return False
self.table[position] = record
self.elementCount += 1
return True
position = self.hashFunction(number)
initial_position = position
return position
break
return -1
def display(self):
class DoubleHashTable(HashTable):
super().__init__(size)
return 5 - (number % 5)
if self.isFull():
return False
position = self.hashFunction(record.get_number())
step = self.h2(record.get_number())
initial_position = position
while self.table[position] is not None:
return False
self.table[position] = record
self.elementCount += 1
return True
# Driver Code
def input_record():
def main():
if choice == 1:
hash_table = HashTable(size)
elif choice == 2:
hash_table = DoubleHashTable(size)
else:
print("Invalid choice!")
return
while True:
print("\nMenu:")
print("1. Insert")
print("2. Search")
print("3. Display")
print("4. Exit")
if option == 1:
record = input_record()
hash_table.insert(record)
elif option == 2:
hash_table.search(number)
elif option == 3:
hash_table.display()
elif option == 4:
print("Exiting...")
break
else:
print("Invalid option!")
if __name__ == "__main__":
main()
Output :
#[?2004l
1. Linear Probing
2. Double Hashing
Menu:
1. Insert
2. Search
3. Display
4. Exit
Menu:
1. Insert
2. Search
3. Display
4. Exit
1. Insert
2. Search
3. Display
4. Exit
Menu:
1. Insert
2. Search
3. Display
4. Exit
Menu:
1. Insert
2. Search
3. Display
4. Exit
Menu:
1. Insert
2. Search
3. Display
4. Exit