0% found this document useful (0 votes)
85 views

Practical 1

The document describes implementing a hash table to quickly look up telephone numbers. It discusses using a hash table with two collision handling techniques to store a telephone book database and compare the number of comparisons required to find numbers. The program implements functions for inserting, displaying, searching, and deleting numbers from the hash table using chaining for collision handling. It runs the hash table implementation and allows the user to insert, display, search and delete telephone numbers.

Uploaded by

Anushka Joshi
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)
85 views

Practical 1

The document describes implementing a hash table to quickly look up telephone numbers. It discusses using a hash table with two collision handling techniques to store a telephone book database and compare the number of comparisons required to find numbers. The program implements functions for inserting, displaying, searching, and deleting numbers from the hash table using chaining for collision handling. It runs the hash table implementation and allows the user to insert, display, search and delete telephone numbers.

Uploaded by

Anushka Joshi
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

Practical 1

Problem Statement :- Consider telephone book database of N clients. Make use of a hash
table implementation to quickly look up client‘s telephone number. Make use of two collision
handling techniques and compare them using number of comparisons required to find a set of
telephone numbers

S/W Required : CPP

Theory Concept:- Hash table is one of the most important data structures that uses a special
function known as a hash function that maps a given value with a key to access the elements
faster.

A Hash table is a data structure that stores some information, and the information has
basically two main components, i.e., key and value. The hash table can be implemented with
the help of an associative array. The efficiency of mapping depends upon the efficiency of the
hash function used for mapping.

Program:

#include<iostream>

#include<string.h>

using namespace std;

struct node

int value;

node* next;

}*HashTable[10];

class hashing

public:

hashing()

for(int i=0 ; i<10 ; i++)

{ HashTable[i]=NULL;

}
int HashFunction(int value)

return (value%10);

node* create_node(int x)

node* temp=new node;

temp->next=NULL;

temp->value=x;

return temp;

void display()

for(int i=0 ; i< 10; i++)

node * temp=new node;

temp=HashTable[i];

cout<<"a["<<i<<"] : ";

while(temp !=NULL)

cout<<" ->"<<temp->value;

temp=temp->next;

cout<<"\n";

} }

int searchElement(int value)

bool flag = false;

int hash_val = HashFunction(value);

node* entry = HashTable[hash_val];

cout<<"\nElement found at : ";

while (entry != NULL)

{
if (entry->value==value)

cout<<hash_val<<" : "<<entry->value<<endl;

flag = true;

entry = entry->next;

if (!flag)

return -1;

void deleteElement(int value)

int hash_val = HashFunction(value);

node* entry = HashTable[hash_val];

if (entry == NULL )

cout<<"No Element found ";

return;

if(entry->value==value)

HashTable[hash_val]=entry->next;

return;

while ((entry->next)->value != value)

entry = entry->next;

entry->next=(entry->next)->next;

void insertElement(int value)

int hash_val = HashFunction(value);


// node* prev = NULL;

//node* entry = HashTable[hash_val];

node* temp=new node;

node* head=new node;

head = create_node(value);

temp=HashTable[hash_val];

if (temp == NULL)

HashTable[hash_val] =head;

else

while (temp->next != NULL)

temp = temp->next;

temp->next =head;

};

int main()

int ch;

int data,search,del;

hashing h;

do

cout<<"\nTelephone : \n1.Insert \n2.Display \n3.Search \n4.Delete \n5.Exit";

cin>>ch;

switch(ch)

case 1:cout<<"\nEnter phone no. to be inserted : ";

cin>>data;
h.insertElement(data);

break;

case 2:h.display();

break;

case 3:cout<<"\nEnter the no to be searched : ";

cin>>search;

if (h.searchElement(search) == -1)

cout<<"No element found at key ";

continue;

break;

case 4:cout<<"\nEnter the phno. to be deleted : ";

cin>>del;

h.deleteElement(del);

cout<<"Phno. Deleted"<<endl;

break;

}while(ch!=5);

return 0;

Output : -
Conclusion: - Thus we have implemented hash table to quickly look up client‘s telephone
number.

You might also like