0% found this document useful (0 votes)
7 views14 pages

DDS Hashing: Linear Probing

The document describes four different hashing techniques - linear probing, quadratic probing, double hashing, and separate chaining. For each technique, it provides code for initializing the hash table, inserting elements, deleting elements, searching for elements, and displaying the hash table.

Uploaded by

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

DDS Hashing: Linear Probing

The document describes four different hashing techniques - linear probing, quadratic probing, double hashing, and separate chaining. For each technique, it provides code for initializing the hash table, inserting elements, deleting elements, searching for elements, and displaying the hash table.

Uploaded by

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

DDS

HASHING
LINEAR PROBING
Initialize
void init()
{
for(i=0;i<size;i++)
h[i]=-1;
}

Insert
void insert(int value)
{
k=value%size;
if(h[k]==-1)
{
h[k]=value;
printf("%d element inserted at %d position\n",value,k);
}
else
{
for(i=0;i<size;i++)
{
int key=(k+i)%size;
if(h[key]==-1)
{
h[key]=value;
printf("%d element inserted at %d position\n",value,key);
break;
}
}
}
}

Delete
void del(int value)
{
k=value%size;
if(h[k]==value)
{
printf("deleted element=%d\n",value);
h[k]=-1;
}
else
{
for(i=0;i<size;i++)
{
int key=(k+i)%size;
if(h[key]==value)
{
printf("deleted element=%d\n",h[key]);
h[key]=-1;
break;
}
}
if(i==size)
printf("Element does not exist");
}
}
Search
void search(int value)
{
k=value%size;
if(h[k]==value)
printf("%d element found at %d position\n",value,k);
else
{
for(i=0;i<size;i++)
{
int key=(k+i)%size;
if(h[key]==value)
{
printf("element found at %d position\n",key);
break;
}
}
if(i==size)
printf("Element not found");
}
}

Display
void display()
{
for(i=0;i<size;i++)
printf("h[%d]=%d\n",i,h[i]);
}
QUADRATIC PROBING
Initialize
void init()
{
for(i=0;i<size;i++)
h[i]=-1;
}

Insert
void insert(int value)
{
k=value%size;
if(h[k]==-1)
{
h[k]=value;
printf("%d element inserted at %d position\n",value,k);
}
else
{
for(i=0;i<size;i++)
{
int key=(k+i*i)%size;
if(h[key]==-1)
{
h[key]=value;
printf("%d element inserted at %d position\n",value,key);
break;
}
}
}
}

Delete
void del(int value)
{
k=value%size;
if(h[k]==value)
{
printf("deleted element=%d\n",value);
h[k]=-1;
}
else
{
for(i=0;i<size;i++)
{
int key=(k+i*i)%size;
if(h[key]==value)
{
printf("deleted element=%d\n",h[key]);
h[key]=-1;
break;
}
}
if(i==size)
printf("Element does not exist");
}
}

Search
void search(int value)
{
k=value%size;
if(h[k]==value)
printf("%d element found at %d position\n",value,k);
else
{
for(i=0;i<size;i++)
{
int key=(k+i*i)%size;
if(h[key]==value)
{
printf("element found at %d position\n",key);
break;
}
}
if(i==size)
printf("Element not found");
}
}

Display
void display()
{
for(i=0;i<size;i++)
printf("h[%d]=%d\n",i,h[i]);
}
DOUBLE HASHING
Initialize
void init()
{
for(i=0;i<size;i++)
h[i]=-1;
}

Nearest Prime No.


int prime()
{
int i,j;
for(i=size-1;i>0;i--)
{
int c=0;
for(j=1;j<=i;j++)
{
if(i%j==0)
c++;
}
if(c==2)
{
return i;
}
}
}

Insert
void insert(int value)
{
k=value%size;
if(ht[k]==-1)
{
ht[k]=value;
printf("%d element is inserted at %d position\n",ht[k],k);
}
else
{
int p,h1,h2,key;
p=prime();
h1=k%size;
h2=p-(k%p);
for(i=0;i<size;i++)
{
key=(h1+i*h2)%size;
if(ht[key]==-1)
{
ht[key]=value;
printf("%d element found at %d position\n",ht[key],key);
break;
}
}
}
}

Delete
void del(int value)
{
k=value%size;
if(ht[k]==value)
{
printf("deleted element=%d\n",ht[k]);
ht[k]=-1;
}
else
{
int p,h1,h2,key;
p=prime();
h1=k%size;
h2=p-(k%p);
for(i=0;i<size;i++)
{
key=(h1+i*h2)%size;
if(ht[key]==value)
{
printf("deleted element=%d\n",ht[key]);
ht[key]=-1;
break;
}
}
if(i==size)
printf("element not found\n");
}
}

Search
void search(int value)
{
k=value%size;
if(ht[k]==value)
{
printf("%d element found at %d\n",ht[k],k);
}
else
{
int p,h1,h2,key;
p=prime();
h1=k%size;
h2=p-(k%p);
for(i=0;i<size;i++)
{
key=(h1+i*h2)%size;
if(ht[key]==value)
{
printf("%d element found at %d\n",ht[key],key);
ht[key]=-1;
break;
}
}
if(i==size)
printf("element not found\n");
}
}

Display
void display()
{
for(i=0;i<size;i++)
printf("h[%d]=%d\n",i,ht[i]);
}

SEPARATE CHAINING
Structure
struct node
{
int data;
struct node *next;
}*ht[size]={NULL};

Insert
void insert(int value)
{
int i=value%size;
struct node *newnode,*temp;
newnode=(struct node*)malloc(sizeof(struct node));
newnode->data=value;
newnode->next=NULL;
if(ht[i]==NULL)
ht[i]=newnode;
else{
temp=ht[i];
while(temp->next!=NULL)
temp=temp->next;
temp->next=newnode;
}
printf("Insertion Sucess\n");
}
Delete
void del(int value)
{
struct node *temp,*temp1;
int i=value%size;
temp=ht[i];
if(temp->data==value)
{
printf("the deleted element is %d\n",temp->data);
ht[i]=temp->next;
free(temp);
}
else
{
temp=ht[i];
while(temp->data!=value&&temp->next!=NULL)
{
temp1=temp;
temp=temp->next;
}
if(temp->next==NULL)
{
printf("deleted element=%d\n",temp->data);
temp1->next=temp->next;
free(temp);
}
else
printf("no such element\n");
}
}

Search
void search(int value)
{
int i;
struct node *temp;
i=value%size;
temp =ht[i];
while(temp!=NULL)
{
if(temp->data==value)
{
printf("element found\n");
break;
}
temp=temp->next;
}
if(temp=NULL)
printf("element not found\n");
}

Display
void display()
{
int i,index;
struct node *temp;
for(i=0;i<size;i++)
{
index=i%size;
temp =ht[index];
while(temp!=NULL)
{
printf("%d ",temp->data);
temp=temp->next;
}
}
printf("\n");
}

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy