#include
#define MAX 10
#define HTMAX 20
int h[HTMAX]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},a[MAX];
void DoubleHT(int);
void Search(int);
void main()
{
int n,i,x ;
clrscr();
printf("\n\t\t---:DOUBLE HASHING TECHNIQUE(LINEAR PROBING):---\n");
printf("\n\t Enter the no. of elements of array you want to enter :->");
scanf("%d",&n);
for(i=0;i
scanf("%d",&a[i]);
}
printf("\n Original Array\n");
for(i=0;i
scanf("%d",&x);
Search(x);
getch();
}
void DoubleHT(int n)
{
int addr,i,j,k,flag=1;
for(i=0;i
addr=(a[i]%10)%20;
if(h[addr]==-1)
h[addr]=a[i];
else
{
// Loop upto the HashTable Array Limit
for(j=1;j
addr=(a[i]%10+j*(a[i]%10))%20;
if(h[addr]==-1)
{
h[addr]=a[i];
break;
}
else if(h[addr]!=-1) // Code for Liner Probing starts
{
addr++;
while(flag==1)
{
if(h[addr]!=-1)
addr++;
else
flag=0;
}
h[addr]=a[i];
flag=1;
break; // Ends here !
}
}
}
}
printf("\n Printing Hashtable \n");
for(i=0;i
}
void Search(int x)
{
int addr=0;
addr=x%10;
while(x!=h[addr] && addr
if(x==h[addr])
printf("\n\n Search is succsessfull!!!!!");
else
printf("\n\n Requested Element is not found !!!");
}
No comments:
Post a Comment