0% found this document useful (0 votes)
29 views6 pages

Assignment 2

The document compares two collision handling techniques for a telephone book database: linear probing and separate chaining with linked lists. It includes Python code to implement both and compares the number of comparisons required to find numbers.

Uploaded by

Vaishnavi Kaware
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views6 pages

Assignment 2

The document compares two collision handling techniques for a telephone book database: linear probing and separate chaining with linked lists. It includes Python code to implement both and compares the number of comparisons required to find numbers.

Uploaded by

Vaishnavi Kaware
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

'''Assignment 2

Consider telephone book database of a n clients. make use of hashtable implementation


quickly look up clients telephone number make a use of two collision handling techniques
and compare them using number of comparisons required to find a set of telephone
numbers.'''
1) Program Using Linear Probing:-
class telephonedirectory:
def init (self):
self.size=int(input("Enter size for Hash Table= "))
self.hash_table=list(0 for i in range(self.size))
print(self.hash_table)
self.count=0
def hashFunction(self,key):
return key%self.size
def insertRecord(self,key):
if(self.count!=self.size):
index=self.hashFunction(key)
if(self.hash_table[index]==0):
self.hash_table[index]=key
self.count+=1
print(self.hash_table)
else:
print("ohh..!! collision occured..!!")
hx=index
i-=1
while(self.hash_table[index]!=0):
index=(hx+i)%self.size
i=i+1
self.hash_table[index]=key
self.count+=1
print(self.hash_table)

1
else:
print("Hash Table is Full..!!")
return

def main():
t1=telephonedirectory()
t1.insertRecord(56)
m=int(input("enter total no of records to the insert= "))
for i in range(m):
t1.insertRecord(int(input("Enter Value= ")))

main()
Output:
Enter size for Hash Table= 4
[0, 0, 0, 0]
[56, 0, 0, 0]
enter total no of records to the insert= 5
Enter Value= 1
[56, 1, 0, 0]
Enter Value= 2
[56, 1, 2, 0]
Enter Value= 3
[56, 1, 2, 3]
Enter Value= 4
Hash Table is Full..!!
Enter Value= 4
Hash Table is Full..!!

2
Program Usinng separate_chaining_linked_list :-
class Node:
def init (self, data):
self.data = data
self.next = None

class LinkedList:
def init (self):
self.head = list(None for i in range(10))
print(self.head)

def printLL(self):
for i in range(10):
current_node = self.head[i]
if(self.head[i] == None):
print('\n',i, ' index list is empty=')
else:
print ('\n',i, 'index list is ',end=' ')
while(current_node):
print(current_node.data, end=' ')
current_node = current_node.next

def insertAtBegin(self, data):


new_node = Node(data)
index = data % 10
if self.head[index] is None:
self.head[index] = new_node
return
else:
new_node.next = self.head[index]

3
self.head[index] = new_node
def search(self):
teleph_no = int(input('enter telephone no to be search= '))
index = teleph_no % 10
temp = self.head[index]

while(temp):
if (temp.data == teleph_no):
print ('telephone no found at index ', index)
return
else :
temp = temp.next
print ('telephone not found')
def main():
print('Hello..!! Welcome in DSA program--!!')
L1 = LinkedList()
for i in range(5):
L1.insertAtBegin(int(input('enter telephone number= ')))
L1.printLL()
L1.search()
main()
Output:
Hello..!! Welcome in DSA program--!!
[None, None, None, None, None, None, None, None, None, None]
enter telephone number= 12345

0 index list is empty=

1 index list is empty=

4
2 index list is empty=

3 index list is empty=

4 index list is empty=

5 index list is 12345


6 index list is empty=

7 index list is empty=

8 index list is empty=

9 index list is empty=


enter telephone no to be search= 12345
telephone no found at index 5
enter telephone number= 123

0 index list is empty=

1 index list is empty=

2 index list is empty=

3 index list is 123


4 index list is empty=

5 index list is 12345


6 index list is empty=

5
7 index list is empty=

8 index list is empty=

9 index list is empty=


enter telephone no to be search= 1
telephone not found
enter telephone number= 1236

0 index list is empty=

1 index list is empty=

2 index list is empty=

3 index list is 123


4 index list is empty=

5 index list is 12345


6 index list is 1236
7 index list is empty=

8 index list is empty=

9 index list is empty=


enter telephone no to be search= 123
telephone no found at index 3

You might also like